DATA OPS

BigQuery dbt-Model Freshness Sentinel to Linear

Hourly scan of dbt-managed BigQuery tables for stale partitions; when a model misses its freshness SLA, files a Linear ticket to the owning team with lineage context so the right…

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerHourly freshness scan
  • ActionQuery partition recency + dbt SLAGoogle BigQueryBigQuery
  • LogicKeep models past freshness SLA
  • ActionResolve owner + upstream lineageGoogle BigQueryBigQuery
  • ActionFile Linear ticket to owning teamLinearLinear
  • OutputPost new-ticket digest to SlackSlack

What it does

Watches every dbt model registered in your BigQuery warehouse and checks whether its latest partition landed inside the model's declared freshness window. When a table goes stale past its SLA, it opens a Linear issue assigned to the team that owns the model, pre-filled with the table name, last-loaded timestamp, hours overdue, and upstream lineage so the on-call analyst can start triaging immediately.

When to use it

Use it when your team relies on dbt freshness checks but nobody watches the `dbt source freshness` output, or when stale dashboards keep surprising stakeholders. Best for warehouses where each model has a clear owning team in the dbt `meta` block.

How it works

  1. 1An hourly schedule fires the sentinel.
  2. 2It queries BigQuery `INFORMATION_SCHEMA.PARTITIONS` plus the dbt manifest to find each model's newest partition and its SLA.
  3. 3A filter keeps only models whose latest data is older than their allowed window.
  4. 4For each stale model it reads the dbt `meta.owner` and upstream `depends_on` lineage.
  5. 5It files a Linear issue to the owning team with the overdue hours and lineage chain.
  6. 6It posts a digest of all new tickets to the data-ops Slack channel.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect BigQueryDatasets, queries, schemas.
  2. 2
    Connect LinearIssues, projects, cycles, triage.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  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.