clement13.net
Original photo: Salle de contrôle d'une soufflerie : mur de cadrans, de voyants et d'enregistreurs à papier, surveillé par des opérateurs.
Description
Salle de contrôle d'une soufflerie : mur de cadrans, de voyants et d'enregistreurs à papier, surveillé par des opérateurs.
Source
NASA (Aircraft Engine Research Laboratory) · original page
Licence
PD Public domain
Original photo, unretouched. The background is a version of it stylised by the site.

Observability and Reliability

This theme measures the ability to know what software is doing in production, detect degradation before users do, and restore it quickly. Commitments are expressed as detection time…

Guide≈ 6 min readCheckedCheck doneFacts, figures and references were checked against the sources cited in the page.Written with AI assistance; sources are cited at the bottom of the page. An error? Report it via clement13.net.Reading
In brief

This theme measures the ability to know what software is doing in production, detect degradation before users do, and restore it quickly. Commitments are expressed as detection time, restoration time, and quantified service level objectives (SLOs). Monitoring of data pipelines is detailed on the BI 10 and Data 10 sides.

On this page

Level: 🟢→🔴 · Theme code: OBS (DL matrix)

Why this theme#

“The user is the one who alerts us” is the sign of a blind spot. Every minute between an outage and its detection is a minute of invisible incident, decisions made on bad data, and lost trust. Conversely, over-alerting is exhausting: a team that receives 200 alerts a day handles none of them. Reliability is therefore a measured balance between speed of change and stability, which the SRE (Site Reliability Engineering) approach formalizes through SLOs and the error budget.

Observability differs from simple monitoring: monitoring means checking expected questions (“is the service responding?”); observing means being able to ask unexpected questions based on rich signals (structured logs, metrics, correlated traces). The open standard OpenTelemetry provides a common vocabulary for these signals.

In a datamart, a nightly process can technically “succeed” with wrong numbers: reliability includes data freshness and accuracy, not just availability. See 08 BI — Testing and Metrics Reliability.

What the theme measures#

  • Axis: from “we discover outages through complaints” to “service objectives drive change decisions”.
  • Key indicators: mean time to detect (MTTD); restoration time; share of incidents detected by monitoring rather than by users; SLO compliance; alert noise (non-actionable alerts).
  • Unit: minutes; %; alerts per week and per on-call person.

Five-level table#

Level Short name Commitment Typical indicator (orders of magnitude)
1 Blind An outage is known when a user reports it. Detection by users > 80%
2 Monitored Clear outages (service down, disk full) are detected before users. Detection < 30 min for clear outages
3 Diagnosed When facing an incident, the cause is found in minutes thanks to correlated logs and metrics. Structured logs; diagnosis < 1 h
4 Objective-driven Quantified service objectives exist; when the error budget is consumed, changes are slowed down. SLO per service; alerts on budget consumption; > 90% actionable alerts
5 Resilient The system absorbs partial failures without visible impact, and every incident improves the system. Contained failures; chaos exercises; measured learning

Milestones by level#

ID Milestone Verifiable evidence
DL-OBS-1.1 Application errors are logged somewhere accessible Log accessible to the team
DL-OBS-1.2 Incidents are recorded (date, impact, cause, action) Incident register
DL-OBS-1.3 A person or channel is identified to receive reports Known entry point
DL-OBS-2.1 Automated health checks cover availability, disk space, scheduled jobs Test alerts received
DL-OBS-2.2 Alerts reach an identified person (on-call or role) On-call schedule
DL-OBS-2.3 A scheduled job that did not run (or did not complete) triggers an alert Test by stopping a job
DL-OBS-2.4 Alerts have handling guidance (what to do) Action sheets for the 10 most frequent alerts
DL-OBS-3.1 Logs are structured, timestamped in the same format, and carry a correlation ID End-to-end transaction reconstruction
DL-OBS-3.2 Service metrics (latency, error rate, saturation, traffic) are available Dashboard per service
DL-OBS-3.3 Detection and restoration times are measured per incident Mean and median over 6 months
DL-OBS-3.4 A blameless post-incident analysis is conducted for major incidents Dated reports with actions
DL-OBS-3.5 Freshness and volume of produced data are monitored (row count, last update date) Alert on stale data
DL-OBS-4.1 Quantified SLIs (indicators) and SLOs (objectives) exist for each critical service Document validated by the business
DL-OBS-4.2 The error budget is tracked; its consumption changes the pace of changes Documented freeze/restart decision
DL-OBS-4.3 Alerts target symptoms (user impact) rather than isolated causes Alert catalog review
DL-OBS-4.4 > 90% of triggered alerts are actionable (quarterly noise review) Measured rate
DL-OBS-4.5 Distributed tracing or equivalents cover critical paths Complete trace of a path
DL-OBS-5.1 Recovery mechanisms (automatic retry, queues, idempotency) absorb partial failures Dependency failure test
DL-OBS-5.2 Scheduled failure exercises (chaos, recovery days) take place at least twice a year Reports
DL-OBS-5.3 Actions resulting from incidents are closed within a defined timeframe (> 80% within 30 days) Action tracking
DL-OBS-5.4 The cost of observability (telemetry volume) is managed without losing signal Sampling and retention policy

Detailed reading by level#

🟢 Level 1 — Blind#

  • Signs: “we found out from the client”; logs in files nobody looks at.
  • Gain: zero cost.
  • Does not guarantee: neither detection nor learning.
  • Difficulty: 1/5 · Effort: 1/5.

🟢 Level 2 — Monitored#

  • Signs: health checks, alerts to an owner, detection of jobs that did not run (silence is a signal: absence of success must trigger an alert).
  • Gain: clear outages no longer go unnoticed overnight.
  • Does not guarantee: diagnosis or detection of subtle degradations.
  • Difficulty: 2/5 · Effort: 2/5.

🟡 Level 3 — Diagnosed#

  • Signs: structured logs with correlation ID, service metrics (the “four golden signals”: latency, traffic, errors, saturation), post-incident analyses.
  • Gain: diagnosis time drops from days to minutes; incident memory accumulates.
  • Does not guarantee: that alert priority reflects business impact.
  • Difficulty: 3/5 · Effort: 3/5.

🔴 Level 4 — Objective-driven#

  • Signs: for example, an SLO of 99.5% of nightly jobs completed before 6 AM over 30 days leaves an error budget of about 3.6 h (0.5% of 720 h) — order of magnitude; if the budget is consumed, priority shifts from features to reliability. Alerts speak in terms of impact (“morning reports will not be ready”), not isolated causes.
  • Gain: a common language between product and operations, explicit trade-offs.
  • Does not guarantee: that the objective is the right one — an SLO is revised based on real usage.
  • Difficulty: 4/5 · Effort: 4/5.

🔴 Level 5 — Resilient#

  • Signs: partial failures are absorbed (idempotent retries, buffer queues), failure exercises are routine, incident actions are closed.
  • Gain: the system and team learn faster than failures occur.
  • Does not guarantee: absence of a major incident; it reduces impact and duration.
  • Difficulty: 5/5 · Effort: 5/5.

Partial attainment and rating#

Apply the rating rule.

  • 0.5 on DL-OBS-3.1: structured logs for the application, free text for scheduled scripts.
  • 0.5 on DL-OBS-4.1: SLOs defined, never reviewed or linked to a decision.
  • A partial 5: yearly failure exercises and closed actions, but telemetry cost not managed.
⚠️ Pitfall

Alert fatigue. Symptom: alerts are ignored or muted. Cause: alerts on causes, without an actionable threshold. Remedy: an alert must call for immediate human action; otherwise, it is a dashboard or report.

⚠️ Pitfall

Technical success, business failure. Symptom: the job is “green,” the numbers are stale or half-loaded. Cause: execution is monitored, not produced data. Remedy: check freshness, volume, and invariants (cross totals) after each load.

💡 Expert tip

Alert on the absence of a success signal (dead man's switch): this is the only way to detect that the scheduler itself has gone down.

Move to the next level#

Possible means (optional)

  • 1 → 2: health checks, alert on failure and on missing execution, named on-call.
  • 2 → 3: structured logging with correlation, service metrics, post-incident analyses.
  • 3 → 4: define one SLO per critical service with the business, track the budget, remove any non-actionable alert.
  • 4 → 5: idempotent retries, failure exercises, systematic closure of actions.
🧪 Example

Nightly consolidation job: at level 1, you find out at 9 AM that reports are empty. At level 3, a 6 AM alert states “SFA batch load incomplete: 41% of expected rows” thanks to a volume check, with batch ID to find the cause in 10 minutes.

⚠️ Pitfall (Goodhart)

A low MTTR target encourages quick closure without fixing the cause. Pair it with the incident recurrence rate.

See also#

✻ Written by Claude Sonnet 5.5