Observability
KAVACH emits metrics, structured logs and traces so operators can see exactly how jobs, evaluations and decisions behave in production.
The 3 Signals
Every subsystem is instrumented for metrics, logs and traces. All three share correlation identifiers so a single request can be followed across control planes.
Metrics
- Job throughput, latency and retry counts.
- Evaluation duration and cache hit rate.
- Reconciliation lag between relational and graph state.
Structured Logs
Logs are emitted as structured JSON with a stable schema. Each entry carries the tenant, subject and correlation id, making logs queryable rather than free text.
{
"level": "info",
"event": "decision.committed",
"tenant": "acme",
"decision_id": "decision_991",
"trace_id": "b7ad...e2",
"duration_ms": 42
}Traces
Distributed traces span the full lifecycle — intake, evaluation, decision and projection — so latency can be attributed to a specific stage rather than guessed at.
- 01record intake
A correlation ID begins at the governed request boundary.
- 02attach evaluation span
Provider latency and metric work remain linked to the same trace.
- 03commit decision event
The decision carries its policy, evidence and duration context.
- 04export telemetry
Metrics, structured logs and trace spans reach the existing backend.
governed outcome
TRACE LINKED
One correlation ID · full lifecycle visible · latency attributable
OpenTelemetry
All telemetry is exported over OpenTelemetry, so KAVACH plugs into your existing collector and backend without proprietary agents.
