ENGINEERING

Slow-Query Regression Hunter from pg_stat_statements

Hourly, snapshots pg_stat_statements, compares mean execution time against the prior baseline, and opens a GitHub issue for any query whose latency regressed past a threshold.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerHourly schedule
  • ActionRead pg_stat_statementsPostgreSQLPostgres
  • ActionLoad prior baseline snapshotPostgreSQLPostgres
  • LogicFlag queries past regression threshold
  • OutputOpen GitHub issue per regressionGitHubGitHub
  • ActionPersist new baseline snapshotPostgreSQLPostgres

What it does

It watches your production Postgres for queries that got slower. Every hour it reads `pg_stat_statements`, computes per-query mean execution time, and diffs it against the previous snapshot stored in a control table. Any normalized query that crosses your regression threshold (e.g. 2x slower or +200ms) gets a GitHub issue with the fingerprint, before/after timings, and call counts.

When to use it

Run this when a deploy or data-growth event silently degrades query latency and you only find out from user complaints. It turns invisible drift into a tracked, assignable ticket the moment it happens.

How it works

  1. 1A schedule fires hourly.
  2. 2Query `pg_stat_statements` for queryid, normalized text, mean_exec_time, and calls.
  3. 3Read the prior snapshot from a `query_baselines` table and join on queryid.
  4. 4A logic step flags rows where mean_exec_time grew past the configured multiplier and absolute floor.
  5. 5For each flagged query, open a GitHub issue labeled `perf-regression` with the diff.
  6. 6Write the new snapshot back as the next baseline.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect PostgresAny Postgres URL — query, write, migrate.
  2. 2
    Connect GitHubRepos, issues, pull requests, actions.
  3. 3
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  4. 4
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  5. 5
    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.