On-call is where alert fatigue lives. Today we are extending FlowTux to the on-call queue: signals arrive, collapse to one item per root cause, get a severity from observable impact, and only the conditions that genuinely need a human now reach the pager. Everything else becomes an owned ticket instead of a notification nobody reads.
This is a triage layer, not a replacement pager. PagerDuty still owns rotations and escalation policies. What changes is what reaches them — and how much the responder already knows when it does.
The pager problem is arithmetic, not attitude
The reason on-call degrades is not that engineers stopped caring. It is that the volume exceeds what the shift was designed to absorb, and the human response to unabsorbable volume is to skim. Skimming is a rational adaptation, and it is also precisely how the real incident gets missed.
Google’s SRE book sets the ceiling explicitly: on average, no more than two incidents per 12-hour on-call shift. That number is not comfort-driven. A single incident handled properly — root-cause analysis, remediation, postmortem, follow-up fixes — is budgeted at roughly six hours of work. Two incidents fill a shift. The same book recommends working toward a 1:1 alert-to-incident ratio, because every alert above that ratio is effort spent recognising a duplicate rather than fixing a cause.
Measured against that ceiling, most rotations are structurally overloaded. Catchpoint’s SRE Report 2026, based on 418 practitioners, puts the median share of time spent on repetitive, low-value work at 34% — after the 2025 edition recorded the first rise in five years, from 25% to 30%. Operational load is not quietly resolving itself in the background.
≤2
Incidents per 12-hour shift — the ceiling in Google’s SRE book
1:1
Alert-to-incident ratio that book recommends aiming for
34%
Median time on toil (Catchpoint SRE Report 2026, n=418)
16%
Of respondents say AI increased their toil (same report)
Why this got harder in 2026, not easier
The 2025 DORA State of DevOps research found AI adoption correlating with higher delivery throughput and, at the same time, greater instability — more change failures and more rework. More change shipped per week means more change to be woken up about. The alerting layer inherits the consequences of the velocity gained upstream.
The same Catchpoint report shows who feels it. Asked whether AI had reduced their toil, 49% said workload decreased, 35% saw no change, and 16% said it increased — and the answers split by seniority: 60% of directors reported a reduction against 38% of individual contributors. The people holding the pager are the least convinced that automation has helped them so far.
That is a reasonable prior to bring to an announcement like this one, so here is the specific claim: the useful thing to automate on-call is not the fixing. It is the sorting that happens before a human is involved at all.
What shipped
FlowTux now ingests on-call signals alongside the ticket queue — error-tracker events, CI and deploy failures, monitoring webhooks, and the duplicate human reports that always accompany a visible outage. They land in one place, get deduplicated, get a severity, and route from there.
Four things happen to every incoming signal, in order: collapse, classify, contextualise, route. The sections below cover each.
Sources
FlowTux
Collapse → classify → contextualise → route
Out
One root cause, one incident
One root cause rarely produces one alert. An expiring certificate or a bad deploy fires across every service that touches it, and in most setups each firing becomes its own notification and its own page. The responder spends the first twenty minutes of the incident closing duplicates.
Deduplication happens at ingestion, and it is semantic rather than string-matching, because the same failure phrases itself differently in every service — one emits a TLS handshake error, another a 502, a third a timeout in a health check. Related signals fold into a single incident carrying an occurrence count, the list of affected services, and the first-seen timestamp.
This is the same mechanism that already folds repeat Sentry occurrences into an existing ticket rather than opening a new one each time. Applied to the pager, it converts a storm into one page with a number next to it.
The severity gate: what pages and what waits
The distinction that most alerting setups have collapsed is between an alert and a page. A page interrupts a human immediately, whatever the hour. It is justified only when minutes matter. A degradation with headroom, a batch job that failed with a morning deadline, a warning threshold crossed on one replica — all real signals, none of them worth waking anyone.
FlowTux assigns severity from observable impact: which services are affected, whether user-facing paths are failing, error-rate change against the recent baseline, and whether the signal correlates with a recent deploy. P1 and P2 conditions page. Everything else becomes a ticket with an owner and a normal-priority clock — visible, assigned, and not an interrupt.
The gate is configurable per service, and it is auditable: every suppressed signal is still recorded, so "why did this not page me" has an answer on the timeline rather than in a guess.
Signals in
all
Every alert, error event, CI failure, monitoring webhook, and duplicate human report.
After semantic deduplication
1 per cause
Related signals fold into one incident with an occurrence count and affected-service list.
After the severity gate
P1 / P2
Impact-scored conditions that need a human now. The rest become owned tickets.
Paged
one page
Handed to PagerDuty, which decides who is on rotation and how it escalates.
Context arrives before the human does
The gap between "something is wrong" and "here is what to check" is where response time actually goes. At 3 a.m. that gap is dashboard archaeology, and the cost of the interruption compounds: the widely cited UC Irvine research by Gloria Mark puts the time to fully re-engage with a task after a single interruption at around 23 minutes. An interrupt that arrives without context is charged twice — once for the incident and once for the re-entry.
So an escalated incident arrives with work already done. The problem is restated in plain language. Code findings from the linked repository are attached — the files and modules most likely involved, ranked by confidence, tagged by module. The occurrence count, affected services, correlated deploy, and any prior incident matching the same signature are on the ticket before the phone rings.
The responder’s first minute is spent evaluating a diagnosis rather than constructing one. That is a smaller claim than "the AI fixes it", and it is the one that holds at 3 a.m.
03:12:04
First signal
Checkout latency alert fires. Incident opened, first-seen timestamp recorded.
03:12:09
31 related signals fold in
Payments, cart, and two downstream services report the same failure. One incident, count 32.
03:12:15
Severity assigned
User-facing path failing, error rate well above baseline, correlated with a deploy 40 minutes earlier. P1.
03:12:22
Context attached
Restated problem, ranked code findings from the linked repo, the suspect deploy, and the matching prior incident.
03:12:26
One page sent
PagerDuty pages whoever is on rotation. The responder opens a ticket that already reads like a diagnosis.
PagerDuty still owns the rotation
FlowTux does not replace PagerDuty and does not want to. Rotations, escalation policies, overrides, and the mechanics of actually waking somebody up are solved problems handled by tools built for them. FlowTux decides what deserves a page; PagerDuty decides who gets it and what happens if they do not answer.
The second half of the handoff matters as much: the ticket remains the record. Every triage decision, suppression, action, and status change lands on one timeline, so the postmortem starts from a written record instead of reconstructing the night from chat scrollback and memory. That record is also what makes weekly alert hygiene possible — a list of what fired without producing action is the retune-or-delete queue.
Roll it out in four stages
Do not point this at production paging on day one. The point of the rollout order below is that each stage is verifiable before the next one is trusted, and that the first two stages change nothing about who gets woken up.
Before stage one, take a baseline. Pages per shift, alert-to-incident ratio, after-hours page count, and the share of pages that produced an action. Without those four numbers recorded beforehand, you will have no way to tell whether anything improved.
- Week 1
Stage 1
Observe only
Signals ingest and get scored. Nothing changes about what pages. Compare the scoring to what your rules did.
- Week 2
Stage 2
Dedup on
Collapse storms into one incident. Verify the ratio on a real storm before trusting it.
- Week 3
Stage 3
Gate the pager
Only P1/P2 pages; everything else becomes an owned ticket. Review suppressions daily at first.
- Week 4+
Stage 4
Auto-resolve the known set
Let the categories that are consistently right close themselves, with the timeline as the audit trail.
What this does not do
It does not fix bad instrumentation. If a service emits no signal when it fails, no triage layer will invent one — deduplication and scoring operate on what arrives. Severity scoring is only as good as the impact data it can see, which is why service mapping is part of setup rather than an optional step.
It does not remove the need for alert hygiene. Suppressing noise makes noise cheaper, and cheap noise accumulates. The weekly review of what fired without producing action still has to happen; FlowTux gives you the list rather than the discipline.
It is also not an SLO engine or a status page. Error budgets, burn-rate policy, and customer communication live in their own tools, and the incident record links out to them rather than reimplementing them.
How to tell whether it worked
Judge this on the four baseline numbers, not on how the demo felt. Pages per shift should approach the two-incident ceiling. The alert-to-incident ratio should fall toward 1:1. After-hours pages should drop faster than total signal volume, because the gate removes interrupts rather than information. And the share of pages that produced a real action should rise — that last one is the honest measure of whether the pager is trustworthy again.
Watch one counter-signal too: incidents that were suppressed and later turned out to matter. That number should be zero, and it is visible on the timeline precisely so it can be checked rather than assumed.
Ungated pager
- One root cause pages forty times
- Every threshold crossing is an interrupt
- Responder starts at a blank dashboard
- Postmortem reconstructed from scrollback
- Nobody knows which alerts are useless
Triage in front of the pager
- One incident with an occurrence count
- Only P1/P2 interrupt; the rest are owned tickets
- Ranked code findings attached before the page
- Timeline written as the incident happens
- Weekly list of what fired without action
Getting started
Connect PagerDuty from Integrations and map services to FlowTux queues, link the repository that gives code findings their grounding, then point your error tracker and CI at the same intake. Run it in observe-only mode for a week before the gate goes live. Pricing is flat — from $79/month for the workspace, with no per-responder fee, because charging per person for an on-call tool is a tax on having enough people in the rotation to sleep.