DEVELOPER DOCS

REST API

Health & Monitoring

On this page

Service health

HTTP
GET /health

Liveness probe. Unauthenticated. Available on both the Read API and the Ingest API.

Response 200

JSON
{ "status": "ok" }

Examples

import httpx
print(httpx.get("https://api.opexia.dev/health").json())
print(httpx.get("https://ingest.opexia.dev/health").json())

Prometheus metrics

HTTP
GET /metrics

Prometheus exposition format. Unauthenticated. Available on both services.


Ingestion health

HTTP
GET /v1/observ/orgs/{org}/workspaces/{ws}/health/ingestion

Whether spans are actually arriving and being processed for this workspace, and whether anything is dead-lettering. This is the first endpoint to check when dashboard panels are empty.

Auth: API key or JWT · Role: admin

Response 200 — not schema-modelled

JSON
{
  "status": "ok",
  "last_span_at": "2026-09-01T14:23:05Z",
  "spans_last_hour": 41203,
  "dead_letter_count_last_hour": 0,
  "engines": {
    "content_reliability": { "status": "ok",     "last_run_at": "2026-09-01T14:20:00Z" },
    "sources":             { "status": "stalled","last_run_at": "2026-09-01T09:02:00Z" }
  }
}

Examples

h = evigauge.get("/v1/observ/orgs/{org}/workspaces/{ws}/health/ingestion")
if h["dead_letter_count_last_hour"] > 0:
    print(f"⚠ {h['dead_letter_count_last_hour']} spans dead-lettered — check span validity")
for name, e in h["engines"].items():
    if e["status"] != "ok":
        print(f"⚠ engine {name} is {e['status']} (last run {e['last_run_at']})")

Reading this endpoint when panels are empty:

SymptomMeaning
spans_last_hour is 0Nothing is arriving — check the SDK endpoint, key, and network path
dead_letter_count_last_hour > 0Spans arrive but fail validation — check required opexia.* attributes
Spans arrive, an engine is stalledIngestion is fine; the engine is failing — most often a missing or expired LLM credential