Page 6 of 8~245 min topic

Disaster recovery lab

Test disaster recovery signals and thresholds

Metrics for rto_minutes, rpo_minutes, citation_precision_post_restore must distinguish bad input from component failure for DR lead failing over region A → B within RTO 2h / RPO 15m.

~30 min this pageObservability

1Learn the idea

Read

Golden signals for this system

Instrument regional RAG platform restore with PostgreSQL + object storage + vector indexes so DR lead failing over region A → B within RTO 2h / RPO 15m can answer: demand, errors, latency/age, saturation. Emit fields needed by rto_minutes, rpo_minutes, citation_precision_post_restore with bounded labels. Sample successful high-volume traces; keep errors and rollout transitions denser within policy.

Read

Alert path worth paging

Define at least one alert that would fire for DR-2026-07-30, with a for/pending window that survives deploy blips. Missing scrape or missing revision labels must not look like health. Include a trace/log example id format you will actually search.

Read

Implementation artifact

{"drill":"DR-2026-07-30","rto_minutes":97,"rpo_minutes":12,"precision":0.96}

Read

Tests for telemetry

Add a unit/integration check that metrics increment on the happy path and on the traffic cut before vector rebuild finishes — fluent ungrounded answers branch. Store machine-readable output in CI artifacts when practical.

Read

Stage depth

Cardinality discipline: tenant and revision are usually enough; raw question text is not a label. Exemplars or trace links beat screenshots alone when debugging DR-2026-07-30. Define who owns alert fatigue review. If you export to a vendor, record retention and access. Synthetic probes should use non-sensitive fixtures and still exercise region-b https://b.rag.example. Practice the query you will type at 2am once, while calm.

Read

Field notes for `disaster-recovery-lab` / `observability`

Document the exact PromQL or log query in the runbook stub for this service. Verify histograms have buckets around your SLO target. Add a canary synthetic check that exercises the oracle path every few minutes in staging. Confirm that PII redaction happens before export. Track build/version as a label on the golden signals. Delete noisy debug logs before they become accidental product dependencies. In this chapter the product is regional RAG platform restore with PostgreSQL + object storage + vector indexes, the human stakeholder is DR lead failing over region A → B within RTO 2h / RPO 15m, and the incident id you design against is DR-2026-07-30. Re-state the oracle in your notes — drill DR-2026-07-30: restore completes 97m; gold citation_precision ≥ 0.95 — and keep the invariant visible: restore validates citation gold set before traffic; corrupt snapshot rejected. Track rto_minutes, rpo_minutes, citation_precision_post_restore as the scoreboard. Surface under change control: region-b https://b.rag.example. If you only have forty minutes, finish the fixture for traffic cut before vector rebuild finishes — fluent ungrounded answers before polishing UI. Promotion language stays ternary: promote, hold, or roll back based on evidence, not hope.

Go deeper

Before you start

Why this matters

Name the dashboard row or log line DR lead failing over region A → B within RTO 2h / RPO 15m opens first during DR-2026-07-30. It must include a correlation id and a bounded label from rto_minutes, rpo_minutes, citation_precision_post_restore. If telemetry is missing, write whether you promote, hold, or roll back — and why hold is the default.

Check your understanding

Page assessment

Answer from memory. Completion is saved from this evidence, not from opening the next page.

1. Can you jump from alert to DR-2026-07-30-class evidence?
2. Do labels stay low-cardinality?
3. Is missing telemetry treated as hold?

All responses are required.