DATA OPS

dbt Source Freshness Breach to PagerDuty Escalation

Runs dbt source freshness checks on a schedule, and when a critical source exceeds its staleness threshold.

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerSchedule every 30 minutes
  • ActionRun dbt source freshnessShell
  • ActionConfirm max loaded-at per sourceSnowflakeSnowflake
  • LogicSplit critical (error) vs advisory (warn)
  • ActionOpen PagerDuty incident on critical breachPagerDutyPagerDuty
  • OutputPost breaching tables and incident link to SlackSlack

What it does

This sentinel executes `dbt source freshness` against your Snowflake warehouse on a fixed cadence, parses the resulting `sources.json`, and isolates any source whose loaded-at lag has crossed its `error_after` threshold. Critical breaches page on-call through PagerDuty; the same breach is mirrored to Slack with the exact table names and lag durations.

When to use it

Use it when stale source data silently poisons everything downstream — a partner feed that stopped landing at 2am shouldn't be discovered at noon by a confused analyst. Best for teams with SLAs on a handful of revenue- or compliance-critical sources.

How it works

  1. 1A schedule fires every 30 minutes during business-critical windows.
  2. 2A shell step runs `dbt source freshness` and writes `sources.json`.
  3. 3Snowflake is queried to confirm the max loaded-at timestamp per flagged source.
  4. 4A logic branch separates `error` (critical) from `warn` (advisory) states.
  5. 5On critical, PagerDuty opens an incident tagged with the source name and lag.
  6. 6The final Slack message lists each breaching table, its lag, and the incident link.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect SnowflakeWarehouses, queries, shares.
  2. 2
    Connect ShellRun sandboxed commands inside the workspace.
  3. 3
    Connect PagerDutyIncidents, on-call, escalations.
  4. 4
    Connect SlackChannels, DMs, threads, mentions.
  5. 5
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  6. 6
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  7. 7
    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.