metrics API

metrics

Ingest metric samples for evaluation. Each sample targets a router via router_id.

POST /v1/metrics

Ingest metric samples

Auth: HMAC signature (X-EB-Signature header)

Request Body

samples *
array Array of metric samples (or send array directly as body)
sample_fields
any

Responses

202 Samples accepted
count
- Number of samples accepted
status
- accepted
400 Invalid payload
401 Invalid HMAC signature
413 Batch too large (max 1000 samples)
422 Validation error (invalid_router_id, invalid_metric, invalid_ts_ms, ts_ms_too_old, ts_ms_in_future, invalid_ok)
429 Rate limited (check Retry-After header)
Headers: Retry-After: Seconds to wait before retrying

Example

Request
curl -X POST https://api.tripswitch.dev/v1/metrics \
  -H "X-EB-Project-ID: PROJECT_ID" \
  -H "X-EB-Timestamp: 1705312200000" \
  -H "X-EB-Signature: HMAC_SIGNATURE" \
  -H "Content-Type: application/json" \
  -d '[
    {"router_id": "550e8400-e29b-41d4-a716-446655440000", "metric": "api.latency_ms", "ts_ms": 1705312200000, "value": 245.5, "ok": true},
    {"router_id": "550e8400-e29b-41d4-a716-446655440000", "metric": "api.latency_ms", "ts_ms": 1705312201000, "value": 312.0, "ok": true, "tags": {"endpoint": "/users"}}
  ]'
Response
{
  "status": "accepted",
  "count": 2
}