DATA OPS

dbt Source Freshness Watchdog: Page On-Call When Sources Stall

Polls source-table load lag in Snowflake against dbt source freshness thresholds and, when an upstream feed stops arriving, escalates to PagerDuty so the pipeline owner is paged…

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerEvery 15 minutes
  • ActionQuery latest row timestamp per source tableSnowflakeSnowflake
  • LogicClassify each source healthy / warn / error
  • ActionPost warn-level heads-up to SlackSlack
  • OutputOpen PagerDuty incident for stalled sourcesPagerDutyPagerDuty

What it does

Monitors the freshness of raw source tables, the ones dbt sources are built on, rather than the marts. It compares the most recent row timestamp per source against the warn and error windows you set. A warn-level lag posts to Slack; an error-level lag (the feed has genuinely stopped) triggers a PagerDuty incident routed to the pipeline's on-call.

When to use it

Use when stale dashboards are usually caused by an upstream feed that quietly stopped, not by dbt itself. Catching the source at the warn stage gives you a head start before the staleness propagates into every dependent model.

How it works

  1. 1A schedule runs every 15 minutes.
  2. 2A Snowflake query returns the latest row timestamp for each monitored source table.
  3. 3A logic step classifies each source as healthy, warn, or error against its thresholds.
  4. 4Warn-level sources are summarized into a single Slack heads-up message.
  5. 5Error-level sources open a PagerDuty incident with the source name and observed lag.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect SnowflakeWarehouses, queries, shares.
  2. 2
    Connect SlackChannels, DMs, threads, mentions.
  3. 3
    Connect PagerDutyIncidents, on-call, escalations.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.