blocker move 1
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# 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`)
|
||||
|
||||
```json
|
||||
{
|
||||
"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)
|
||||
|
||||
```json
|
||||
{
|
||||
"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.
|
||||
Reference in New Issue
Block a user