ENGINEERING

Hourly error-budget sweep freezes burning services

Every hour, queries Honeycomb SLO burn rates across all tracked services, freezes GitLab merges only on the services over budget, and posts a per-service status table to Slack.

CategoryEngineering
Enginesim
Difficultyadvanced
Triggerschedule
Steps5
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerHourly schedule
  • ActionQuery Honeycomb burn rate per SLOHoneycomb
  • LogicBranch each service: freeze, unfreeze, or skip
  • ActionApply batch GitLab label changesGitLabGitLab
  • OutputPost per-service status table to SlackSlack

What it does

Runs a scheduled sweep across every service that has an SLO defined in Honeycomb, evaluates each one's burn rate, and selectively freezes or unfreezes the matching GitLab project. Instead of one alert per service, you get one consolidated hourly status with the freeze state for each.

When to use it

Use it when you run many services and don't want a webhook storm — a single periodic source of truth that reconciles freeze state across the whole fleet. Good for platform teams owning a service-to-project map.

How it works

  1. 1An hourly schedule triggers the run.
  2. 2The workflow queries Honeycomb for the current burn rate of each configured SLO.
  3. 3For each service, it branches: over-threshold services get the GitLab `merge-freeze` label applied; recovered services have it removed; unchanged ones are skipped.
  4. 4It executes the GitLab label changes in batch.
  5. 5It posts a single Slack message with a per-service table showing burn rate, budget remaining, and current freeze state so the whole team sees the fleet at a glance.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect HoneycombDistributed traces and queries.
  2. 2
    Connect GitLabRepos, MRs, pipelines, registry.
  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.