Metrics & SLOs (DOCS-OBS-51-001)

Audience: SREs and developers defining service-level objectives and wiring alerts for Stella Ops. Scope: Platform-wide metric families, suggested SLOs, alert examples, triage and TTFS KPIs, Offline Kit metrics, and observability hygiene.

Last updated: 2025-12-15

This guide is the platform-wide reference for what Stella Ops measures and the objectives those measurements serve. Module-specific signals (for example Aggregation Observability and FN-Drift) build on the conventions defined here.

Core metrics (platform-wide)

SLOs (suggested)

Alert examples

UX KPIs (triage TTFS)

# TTFS first evidence p50/p95
histogram_quantile(0.50, sum(rate(stellaops_ttfs_first_evidence_seconds_bucket[5m])) by (le))
histogram_quantile(0.95, sum(rate(stellaops_ttfs_first_evidence_seconds_bucket[5m])) by (le))

# Clicks-to-closure median
histogram_quantile(0.50, sum(rate(stellaops_clicks_to_closure_bucket[5m])) by (le))

# Evidence completeness average percent (0-4 mapped to 0-100)
100 * (sum(rate(stellaops_evidence_completeness_score_sum[5m])) / clamp_min(sum(rate(stellaops_evidence_completeness_score_count[5m])), 1)) / 4

# Budget violations by phase
sum(rate(stellaops_performance_budget_violations_total[5m])) by (phase)

TTFS Metrics (time-to-first-signal)

# TTFS latency p50/p95
histogram_quantile(0.50, sum(rate(ttfs_latency_seconds_bucket[5m])) by (le))
histogram_quantile(0.95, sum(rate(ttfs_latency_seconds_bucket[5m])) by (le))

# SLO breach rate (per minute)
60 * sum(rate(ttfs_slo_breach_total[5m]))

Offline Kit (air-gap) metrics

# Import rate by status
sum(rate(offlinekit_import_total[5m])) by (status)

# Import success rate
sum(rate(offlinekit_import_total{status="success"}[5m])) / clamp_min(sum(rate(offlinekit_import_total[5m])), 1)

# Attestation verify p95 by type (success only)
histogram_quantile(0.95, sum(rate(offlinekit_attestation_verify_latency_seconds_bucket{success="true"}[5m])) by (le, attestation_type))

# Rekor inclusion latency p95 (by success)
histogram_quantile(0.95, sum(rate(rekor_inclusion_latency_bucket[5m])) by (le, success))

Dashboard: docs/modules/telemetry/dashboards/offline-kit-operations.json

Observability hygiene

Dashboards

Validation checklist