Files
git.stella-ops.org/docs/modules/telemetry/prep/046_TLTY0101-concelier-observability-schema.md
StellaOps Bot f47d2d1377 blocker move 1
2025-11-23 14:53:13 +02:00

1.9 KiB

046_TLTY0101 · Concelier Observability Baseline (Ingest Health)

Date: 2025-11-23

Scope: Minimal, deterministic telemetry schema for Concelier ingest health endpoints so downstream services (Console widgets, health/timeline SSE) can proceed.

Metrics (names and labels)

  • concelier_ingest_queue_depth (gauge)
    • Labels: tenant, source (connector or mirror id)
  • concelier_ingest_latency_seconds (histogram)
    • Labels: tenant, source, stage (ingest, normalize, linkset)
  • concelier_ingest_errors_total (counter)
    • Labels: tenant, source, reason (validation, aoc_violation, duplicate, timeout, other)
  • concelier_ingest_slo_burn_rate (gauge)
    • Labels: tenant, window (5m, 1h)

Logs (structured fields)

  • tenant_id, request_id, trace_id, route, source, stage, severity, duration_ms, error_code (optional)

Health payload (for /obs/concelier/health)

{
  "tenant": "acme",
  "queueDepth": 12,
  "ingestLatencyP50Ms": 320,
  "ingestLatencyP99Ms": 1450,
  "errorRate1h": 0.002,
  "sloBurnRate": 0.8,
  "window": "5m",
  "updatedAt": "2025-11-23T12:00:00Z"
}

Timeline event (for /obs/concelier/timeline future task)

{
  "type": "ingest.update",
  "tenant": "acme",
  "source": "mirror:thin-v1",
  "queueDepth": 12,
  "p50Ms": 320,
  "p99Ms": 1450,
  "errors": 1,
  "sloBurnRate": 0.8,
  "traceId": "4f7c...",
  "occurredAt": "2025-11-23T12:00:00Z"
}

Acceptance

  • Add these metric/log names and labels to service instrumentation.
  • Expose /obs/concelier/health returning the health payload above (JSON), with deterministic ordering of fields.
  • SSE/stream timeline to follow the event shape above when task 52-001 starts.

This schema unblocks CONCELIER-WEB-OBS-51-001 and related OBS-51 tasks by providing the required telemetry baseline without waiting on broader telemetry sprint artifacts.