Observability Best Practices
Guidelines for getting reliable signal from Observability while keeping the noise (and the maintenance) low.
Turn on tracking early, tune thresholds later
Volume Tracking and Freshness Tracking record measurements starting from the moment you enable them. Give the sweep at least a few weeks of history before you rely on AI-authored checks; the more measurements accumulate, the tighter the inferred thresholds become. Enabling tracking is cheap and reversible, so turn it on for every container that participates in your data quality story, not just the ones you plan to check today.
Choose the comparison that matches the failure mode
- Absolute Value works when the expected range is stable. Reach for it when the field has a business-known ceiling or floor, or when the row count should stay within a fixed band.
- Absolute Change works when the baseline drifts but the change has a bound. Reach for it when the number naturally grows (a cumulative table) but a sudden jump or drop is a signal.
- Percentage Change works when the change is best expressed relative to the current baseline. Reach for it when the absolute scale varies but a percentage delta always means the same thing.
Picking the wrong comparison generates noise: Absolute Value on a growing table will fire every time the baseline shifts; Percentage Change on a low-volume field will over-react to small absolute movements.
Right-size the measurement period
For Volumetric, the window size (Measurement Period) controls the granularity of the check:
- 1 Day. Catches issues fast but is sensitive to weekend patterns. Add multiple checks with different windows if daily and weekly patterns both matter.
- 7 Days / 30 Days. Smoothes noise and works well for cumulative metrics or data that arrives in bursts.
Multiple Volumetric checks with different window sizes can coexist on the same container. Layer them intentionally.
Set Maximum Age with a little slack
Maximum Age is a hard threshold: as soon as the last-modified timestamp is older than the configured duration, an anomaly is raised. Add slack for expected timing jitter, holiday schedules, and ETL retries. A pipeline that lands every 4 hours is usually safer with a Maximum Age around 5 or 6 hours than with a tight 4-hour threshold that fires on the smallest delay.
Prefer AI-authored checks for the baseline, author manually for the exceptions
Turning on Create AI Volumetric checks and Create AI Freshness checks gives you fast coverage across every tracked container. Reserve manually authored checks for the containers where you know the thresholds better than the platform can infer (regulatory limits, hard business bounds, tight SLAs).
Combine categories for full coverage
Volumetric, Freshness, and Metric are orthogonal. A critical table often deserves one of each:
- Volumetric catches "no rows arrived".
- Freshness catches "rows aren't recent".
- Metric catches "the rows that arrived have wrong values".
Layer them intentionally rather than choosing one.
Read the heatmap, not just the anomaly count
The heatmap surfaces context the anomaly count misses:
- A run of cyan squares confirms the pipeline is healthy over time.
- A grey square in the middle of a cyan band means a measurement is missing, not that nothing happened.
- An orange square marks a day with at least one anomaly. Hover for the counts.
Use the heatmap for triage before opening individual anomalies.
Favorite the containers you review daily
The Bookmark icon on a card marks it as a favorite and pins it to the top of the listing. Favorites are per-user, so each team member can tune the pinned set for the containers they own. Combined with tag filters, favorites turn a large observability listing into a personalized dashboard.
Move check-level changes out of the chart
The inline Edit Threshold and Edit Maximum Age editors on the chart are for tuning Min / Max and the Maximum Age value. Everything else on the check (Description, Tags, Metadata, comparison type, field) lives in the standard Quality Checks edit flow. Keeping the two flows separate avoids accidental changes while you are triaging a chart.