Data Observability

Data Observability

Overview

Data observability is the discipline of measuring and maintaining the health and reliability of data across its lifecycle — the ability to fully understand the state of the data in your systems, so you can detect, triage, resolve, and prevent data incidents before they reach downstream consumers. The term was popularized by Monte Carlo (Barr Moses, 2019) as an explicit analog to software observability (the logs/metrics/traces discipline for services): instead of asking “is my service up?”, data observability asks “is my data trustworthy, and if not, why?”

It is a distinct discipline, not a synonym for any of its neighbors:

Why it matters now: as data stacks fragment (ingestion, warehouse, transform, BI, reverse-ETL, ML/AI features), the surface area for silent failure explodes, and bad data quietly poisons dashboards, ML features, and AI products. Gartner projects ~50% of enterprises with distributed data architectures will adopt data observability tooling by 2026 (up from ~20% in 2024).

Core Concepts

The Five Pillars

Monte Carlo’s canonical framework decomposes data health into five measurable pillars. The first four are table-/field-level signals; the fifth is the connective tissue.

  1. Freshness — Is the data up to date? How recently was a table updated, and does the update cadence match expectations? Stale tables (e.g. a daily table that didn’t load by 9 AM) are the most common, most user-visible incident.
  2. Volume — Is the amount of data as expected? Row-count completeness over time. Sudden drops (a partial load) or spikes (a duplicate load / fan-out bug) signal problems.
  3. Schema — Has the structure changed? Added/removed/retyped columns, dropped or renamed tables. Schema drift from upstream producers is a leading root cause of breakage (“who changed this column type?”).
  4. Distribution / Quality — Is the data within expected ranges at the field level? Null rates, uniqueness, value ranges, category cardinality, percent-zero, format conformance. This pillar is where field-level data-quality signals live.
  5. Lineage — The map of upstream sources and downstream consumers for every asset, ideally to column level. Lineage is the holistic pillar: it turns a freshness/volume/schema/distribution anomaly into an impact assessment (“which 14 dashboards and 2 ML features depend on this broken table, and what upstream job caused it”). Lineage powers both root-cause (upstream) and blast-radius (downstream) analysis.

Data Downtime

Data downtime is the period when data is partial, erroneous, missing, or otherwise wrong. It is the headline reliability metric and is modeled as:

Data downtime ≈ N × (TTD + TTR)

where N = number of incidents, TTD = time-to-detection, TTR = time-to-resolution. Observability programs drive downtime down by reducing all three: fewer incidents (shift-left/contracts), faster detection (automated monitors vs. “an exec noticed the dashboard was wrong”), faster resolution (lineage-accelerated root cause).

Data SLAs / SLOs / SLIs

Borrowed from SRE and applied to data products:

Data Incident Management

Treating data issues with the rigor of software incidents. The lifecycle: detection → triage/severity → ownership → resolution → retrospective. Key practices: explicitly declared incidents (a human or system declares it, giving a clean basis for uptime/SLA math), severity levels tied to blast radius (use lineage), an on-call/owner model for data assets, blameless postmortems, and tracking MTTD/MTTR trends. Incident data is the empirical basis for SLAs — you can’t promise reliability you don’t measure.

Anomaly Detection on Pipelines

Observability detection ranges from simple to ML-driven:

Lineage & OpenLineage / Marquez

Shift-Left & Data Contracts

The 2024–2026 evolution of the discipline: stop catching issues only after the warehouse load (“shift right”) and move checks earlier — into dbt runs, CI/CD, and at the producer boundary.

Tools / Frameworks

Tool Type Strength / niche
Monte Carlo Commercial platform Coined the category; broad ML monitoring of all five pillars, end-to-end lineage, incident management; warehouse/lake/BI coverage
Bigeye Commercial platform Automation-first: auto-monitors every table/job, 70+ metrics, ML anomaly detection, cross-table/join-based rules; minimal per-monitor config
Anomalo Commercial platform Unsupervised ML deep-data checks (validates values, not just metadata); root-cause and segmentation; strong for AI/ML data
Soda (Soda Core OSS + Soda Cloud) OSS scanner + cloud Lightweight YAML checks (SodaCL), 25+ built-in metrics, SQL-defined custom checks, time-series monitoring & alerting; pragmatic CI-friendly scanning
Great Expectations (GX) OSS library Declarative Expectations (300+ in the gallery), Python/JSON, human-readable Data Docs; best for expressive assertion testing and validation
Elementary dbt-native OSS + cloud Installs as a dbt package; anomaly-detection tests (row count, null rate, avg, etc.), test-result history, self-hosted report; default starting point for dbt teams
OpenLineage Open standard Vendor-neutral lineage metadata spec (Run/Job/Dataset), column-level via Spark
Marquez OSS metadata server Reference OpenLineage implementation; lineage collection + visualization

Selection heuristics: dbt-centric stack → Elementary (then Soda/GX for extra checks). Need vendor-neutral lineage → OpenLineage + Marquez. Enterprise, many sources, want automated full-coverage ML monitoring + incident mgmt → Monte Carlo / Bigeye / Anomalo. Lightweight, CI-embedded checks in code → Soda Core or Great Expectations.

Methodology

  1. Inventory & prioritize assets. You can’t (and shouldn’t) monitor everything equally. Rank tables/data products by downstream blast radius (use lineage) and business criticality. Define tiers.
  2. Establish lineage. Stand up column/table lineage (OpenLineage+Marquez or a platform) so every later step has impact context.
  3. Baseline the five pillars. Turn on freshness, volume, schema monitors broadly (cheap, high ROI); add distribution/quality monitors on key fields of high-tier assets.
  4. Set SLIs → SLOs → SLAs per tier. Define indicators, internal objectives, and (for the top tier) external agreements with consumers.
  5. Choose detection per metric. Thresholds for hard invariants; statistical/ML monitors for seasonal/high-cardinality metrics.
  6. Wire incident management. Route alerts to owners, set severities by blast radius, declare incidents, track TTD/TTR.
  7. Shift left. Add data contracts and CI/dbt checks at producer boundaries to cut incident count (N) at the source.
  8. Measure & iterate. Track data downtime (N×(TTD+TTR)), false-positive rate, SLO attainment; retune monitors and prune noise.

Practical Patterns

Anti-Patterns

Troubleshooting

References