1.9 KiB
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)
- Labels:
concelier_ingest_latency_seconds(histogram)- Labels:
tenant,source,stage(ingest,normalize,linkset)
- Labels:
concelier_ingest_errors_total(counter)- Labels:
tenant,source,reason(validation,aoc_violation,duplicate,timeout,other)
- Labels:
concelier_ingest_slo_burn_rate(gauge)- Labels:
tenant,window(5m,1h)
- Labels:
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/healthreturning 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.