Skip to main content
RunBook Academy

Git, CI/CD & GitOpsCXIII · Observability IntegrationMetaMonitor

The observability of observability — meta-monitoring

Intermediate⏱ ~26 mingitkubectl

What you'll learn

  • Define meta-monitoring as the discipline of observing the observability system itself, including ingestion rate, query latency, retention, and freshness
  • Identify the four failure modes of a silently degraded observability system: dropped metrics, stale data, query failures, and lost audit logs
  • Configure meta-alerts that page on the observability backend, not on the application, when the backend itself is unhealthy
  • Recognise the structural pattern that keeps observability honest: the meta-monitor must be on a separate backend from the system it monitors

Prerequisites

Verified against Git 2.55.x teaching target; 2.40+ minimum · GitHub Actions continuous service; Aug 2026 documentation baseline · Argo CD v3.5.x teaching target; v3.0+ minimum · Flux v2.9.x · Sigstore Cosign v3.1.x · SLSA v1.2 · OCI Distribution Specification v1.1 · Git LFS v3.7.1 · Kubernetes (cross-course target) 1.36.x

Not yet marked complete on this device.

The deploy annotation is on the panel. The deploy event is in the store. The audit log is in the WORM bucket. The error rate is decomposed by version. The performance regression is identified by exemplar. Every signal in the previous five lessons depends on the observability backend being healthy. If the backend is silently degraded, every signal in the previous five lessons is unreliable. The team that monitors the application but not the observability backend has a system that can fail without warning.

What meta-monitoring is

Meta-monitoring is the discipline of observing the observability system itself. The signals the team cares about - application metrics, traces, logs, audit records - are the output of the observability backend. The backend is the producer; the meta-monitor watches the producer.

The signals the meta-monitor watches:

  • Ingestion rate. The rate at which the backend is receiving samples, spans, log records. A drop in ingestion rate is the first signal that the backend is dropping data.
  • Query latency. The time the backend takes to answer a query. A rise in query latency is the first signal that the backend is overloaded.
  • Retention. The fraction of the retention window the backend is actually storing. A drop in retention is the first signal that the backend is silently evicting old data.
  • Freshness. The wall-clock gap between the moment a sample was produced and the moment it became queryable. A rise in freshness is the first signal that the backend is lagging.
flowchart TB
    A["Application"] -->|"metrics, traces, logs"| B["Observability backend"]
    B --> C["Application dashboards"]
    B --> D["Deploy annotations"]
    B --> E["Audit log store"]
    F["Meta-monitor"] -->|"ingestion, latency, retention, freshness"| B
    F --> G["Meta-alerts\npage on backend"]

The four signals together answer “is the observability backend healthy?”. A backend that is healthy produces fresh data with low latency at the configured retention; a backend that is unhealthy produces stale data, slow queries, or lost data.

The four failure modes of silent degradation

An observability backend can fail in four ways that the application dashboards do not show:

  1. Dropped metrics. The backend is not receiving the samples the application is sending. The application dashboards show flatlines or gaps; the on-call engineer sees nothing.
  2. Stale data. The backend is receiving the samples but is lagging in making them queryable. The application dashboards show data from 20 minutes ago during a live incident; the on-call engineer sees the past, not the present.
  3. Query failures. The backend is receiving and storing the data but is failing on queries. The application dashboards load slowly or error out; the on-call engineer cannot see the panels.
  4. Lost audit logs. The audit log forwarding has silently failed. The compliance record has gaps; the security team cannot reconstruct the action history.

Each mode is silent because the application dashboards do not depend on the failing component to render. The meta-monitor is the only system that can detect the degradation.

Meta-alerts that page on the backend

The meta-monitor produces meta-alerts that page on the observability backend, not on the application. The meta-alert fires when:

  • Ingestion rate drops below the configured floor for more than 5 minutes.
  • Query p99 latency rises above the configured ceiling for more than 5 minutes.
  • Retention drops below the configured retention window.
  • Freshness rises above the configured freshness budget.

The meta-alert uses the same paging path as the application alerts. A meta-alert that does not page is a meta-alert that the on-call engineer will not see.

The meta-alert includes the backend’s own telemetry as context: the dropped sample count, the failed query count, the freshness gap. The on-call engineer receives the meta-alert and knows immediately which component of the backend is degraded.

The structural pattern: separate backend

The meta-monitor must run on a separate backend from the system it monitors. A meta-monitor that runs on the same backend it monitors has a circular dependency: the meta-monitor’s own data is at risk when the backend it monitors is degraded.

flowchart LR
    A["Primary backend\nproduction telemetry"] -->|"scrape"| B["Application"]
    C["Meta-monitor backend\nseparate"] -->|"scrape"| A
    C --> D["Meta-alerts"]

The pattern is the same as the out-of-band alerting discipline from the SRE literature. The system that watches the production system must not depend on the production system it watches. A meta-monitor on a separate backend produces alerts when the primary backend is degraded; a meta-monitor on the same backend produces alerts only when both are healthy.

Production discipline

  1. Configure the meta-monitor on a separate backend from the primary. The circular-dependency pattern is structural.
  2. Set freshness, ingestion, latency, and retention budgets. A meta-monitor without budgets is a meta-monitor that does not alert.
  3. Page on meta-alerts. A meta-alert that does not page is a meta-alert that will not be acted on.
  4. Treat a meta-alert with the same urgency as an application alert. The observability backend is production infrastructure.
  5. Drill the meta-alert path quarterly. A paging path that has not been tested is a paging path that will fail in the incident.

Cross-course references

  • Observability course - Parts covering the observability of the collector, Prometheus self-monitoring, and the SLO discipline for the observability backend itself.
  • This course, Part XCVII (DR) covers the disaster-recovery discipline for the observability backend, which is a subset of the meta-monitoring discipline.
  • This course, Part XCI (Identity) covers the identity separation that the meta-monitor depends on for the separate-backend pattern.
  • Google SRE Book - Monitoring Distributed Systems covers the white-box and black-box monitoring disciplines that the meta-monitor operationalises.

Quiz

Knowledge check · 4 questions

  1. Q1. What is the operational danger of an observability backend that is silently degraded?

  2. Q2. The meta-monitor can run on the same backend it monitors, as long as the meta-alerts page correctly.

  3. Q3. Name the four failure modes of a silently degraded observability backend that the meta-monitor must detect.

  4. Q4. Diagnose the meta-monitoring gap and recommend the structural fix.

    Team T has a Grafana, Prometheus, and Loki stack with full instrumentation across the production services. The team has no meta-monitoring. At 02:00 a network partition isolates the Prometheus remote-write receiver from the application cluster. Prometheus continues to scrape locally; remote-write silently fails. At 09:00 the team opens the dashboard during a routine review and discovers that the last 7 hours of metrics are missing. The team cannot answer 'what happened between 02:00 and 09:00' from the observability backend. The audit logs are unaffected.

Passing score: 75%. Answers are checked in this browser.