DATA OPS

BigQuery Per-Team Budget Breach Alert to PagerDuty

Tracks month-to-date BigQuery scheduled-query spend per team and, when a team crosses its monthly budget, pages the team's on-call in PagerDuty and snapshots the spend breakdown…

CategoryData Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerSchedule several times daily
  • ActionQuery month-to-date bytes billed grouped by teamGoogle BigQueryBigQuery
  • LogicCompare to budget, select newly-breaching teams
  • ActionTrigger PagerDuty incident on team servicePagerDutyPagerDuty
  • OutputAppend breach snapshot to Postgres ledgerPostgreSQLPostgres

What it does

Rolls up month-to-date scheduled-query cost by `team` label, compares each team against its configured monthly budget, and when a team exceeds it, triggers a PagerDuty incident routed to that team's escalation policy. It also appends the breach snapshot to a Postgres ledger so finance has an auditable record of when and why a budget was blown.

When to use it

Use this when teams own their BigQuery budgets and a runaway scheduled query can burn the monthly allocation in a day. Pages the right on-call the moment a budget is crossed instead of surfacing it on the next invoice.

How it works

  1. 1A schedule runs several times a day.
  2. 2Query `INFORMATION_SCHEMA.JOBS` for month-to-date bytes billed and group by `team` label.
  3. 3Compare each team's spend to its budget; select teams newly over budget since the last run.
  4. 4Trigger a PagerDuty incident on each breaching team's service.
  5. 5Append the breach snapshot (team, spend, budget, top queries) to the Postgres ledger.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect BigQueryDatasets, queries, schemas.
  2. 2
    Connect PagerDutyIncidents, on-call, escalations.
  3. 3
    Connect PostgresAny Postgres URL — query, write, migrate.
  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.