Skip to main content

Ingesting Metrics To CtrlB via JSON API

This document provides instructions for ingesting metrics directly into CtrlB using JSON-based HTTP APIs. This method is suitable for custom integrations, lightweight systems, or environments without Prometheus or OpenTelemetry.

Protocol Specifications​

  • Ingestion Protocol: HTTP JSON
  • Endpoint URL: http(s)://<INSTANCE_HOST>/engine/api/default/ingest/metrics/_json
  • Payload Format: JSON Array
  • Authentication Method: HTTP Basic Authentication via Authorization header
  • Content-Type: application/json

Payload Requirements​

  • Payload must be a JSON array
  • Each element represents a metric object
  • Each record must include the following required fields:
    • __name__: metric name (record is dropped if missing)
    • value: must be a finite numeric value (record is dropped if missing or non-numeric)

Timestamp handling:

  • Field must be named exactly _timestamp
  • If _timestamp is omitted, server uses ingestion time
  • Accepted formats: seconds, milliseconds, microseconds, or nanoseconds (auto-detected by magnitude)

Example Payload​

[
{
"__name__": "cpu_usage",
"value": 72,
"_timestamp": 1710000000000
},
{
"__name__": "memory_usage",
"value": 64,
"_timestamp": 1710000001000
}
]

Example Request​

curl -X POST http://<INSTANCE_HOST>/engine/api/default/ingest/metrics/_json \
-H "Authorization: Basic <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '[{"__name__":"cpu_usage","value":72}]'

Implementation Notes​

CtrlB:

  • Parses JSON array
  • Validates structure
  • Processes metrics using JSON handler
  • Single object is not allowed -- must be wrapped in array

Validation Procedures​

Test Data Submission​

Send a sample request using curl or Postman.

Verification Process​

  • Access CtrlB dashboard
  • Filter metrics within recent time window
  • Validate metric values and timestamps

Troubleshooting Guide​

Payload Errors​

HTTP 400 Bad Request

  • Ensure payload is a JSON array
  • Validate JSON syntax

Authentication Errors​

HTTP 401 Unauthorized

  • Verify Authorization header format

Endpoint Errors​

HTTP 404

Confirm endpoint:

/engine/api/default/ingest/metrics/_json

Data Issues​

  • Missing fields -> metrics may not be processed
  • Invalid timestamps -> incorrect visualization

Performance Considerations​

  • Batch multiple metrics in one request
  • Avoid very large payloads
  • Implement retry logic for failures