Performance Degradation Alerts: Issues for Slow Creep, Sudden Jumps and Slow Tails
Last verified on Nov 10, 2026.
Slow is a failure mode
Users notice slowness long before anything is down. A search that takes four seconds instead of one still returns results, so no error appears. Slowness also takes three different shapes, and each one needs a different question.
Six signals
The Sazabi agent sets up sensors for your project and maintains them. These feed this page:
- Latency step change. Latency jumps and stays up, usually the day a change shipped.
- Gradual latency drift. A slow climb across days or weeks that no single day makes obvious.
- Tail latency. The slowest requests get slower while the typical request stays flat.
- Boot and cold-start creep. Services take longer to become ready.
- Queue wait growth. Work waits longer before it begins.
- Web vitals regression. Page load and responsiveness get worse. The Sazabi browser SDK does not capture Core Web Vitals, so this one depends on timing data your app already sends.
A regular Monday-morning peak is part of normal behavior, so it is not a slowdown. Each route is judged on its own, so one slow endpoint fires on its own instead of vanishing inside a service-wide average.
Example: the tail moves, the middle does not
This is an example, not output from a real project. The search-api service logs one line per request:
2026-11-08T10:14:02Z INFO search-api GET /v1/search status=200 duration_ms=118 plan=free
2026-11-08T10:14:02Z INFO search-api GET /v1/search status=200 duration_ms=131 plan=pro
2026-11-08T10:14:03Z INFO search-api GET /v1/search status=200 duration_ms=4890 plan=enterprise
2026-11-08T10:14:04Z INFO search-api GET /v1/search status=200 duration_ms=5120 plan=enterpriseMost requests are fine, and every status is 200. An average hides it. A question about the slowest requests on /v1/search, by plan, does not. The issue could say:
- Name: Slowest search requests degraded for enterprise accounts
- Description: The slowest share of /v1/search requests is far above its usual level. The slow requests come from the enterprise plan, which has the largest indexes.
- Severity: medium
What you get
You get an issue with a name, description, severity, optional component and status, and the agent's analysis and evidence attached. Because the agent investigates before it opens anything, a firing that turns out to be a one-off batch job closes without an issue. A service that wobbles at the edge does not open a stream of separate issues.
Delivery rules can match severity or component. A team that owns the search service can take medium issues in Slack while everyone else sees only critical ones. You can also ask the agent in the issue thread when the slowdown began and what else changed around that time.
Keeping it useful
Three things make these sensors sharper:
- Log a duration on each request or job, in a consistent field.
- Include the dimension you suspect, such as route, plan or region, as its own field.
- Send deploy events if you can, so the agent can line up a step change with a release.
If your logs are an unstructured mix, the log parsing glossary entry explains why fields help.
What is not covered
- Services that log no timing at all and send no metrics.
- Slow database queries as their own signal. A slow query reaches Sazabi only as slowness in the service that runs it.
- Rendering problems with no timing data behind them.
- Per-user complaints. The sensors speak about groups of traffic.
Related pages
The vendor-neutral write-up, with queries and thresholds, is the performance degradation guide. For tail behavior alone, see the tail latency guide. A fully down service belongs on outages, and a resource near its limit on capacity risks. Issues detected are metered, so check pricing.
What Sazabi detects today
There are no monitors or alert rules to write: the Sazabi agent automatically sets up sensors for your project and maintains them over time. Sazabi opens an issue when one fires.
- Web vitals regression: Page load and responsiveness get worse. Example: Interaction latency doubles on one page.
- Gradual latency drift: Slow creep over days or weeks that no one notices. Example: Search gets 5% slower every week.
- Latency step change: A sudden jump in latency. Example: Page load goes from 300ms to 1.2s after a deploy.
- Tail latency: Only the slowest requests get worse. Example: p99 triples while the median is flat.
- Boot and cold-start creep: Services take longer to start. Example: Deploys take 3x longer to become healthy.
- Queue wait growth: Work waits longer before it starts. Example: Emails sent 20 minutes after the trigger.
Frequently Asked Questions
Do I choose a latency threshold?
No. The Sazabi agent sets up the latency sensors for your project and maintains them, so there is no threshold for you to choose.
Does this need traces?
It needs latency to appear in your logs, for example a duration field on each request line, or OpenTelemetry data sent to the same project.
Does it cover browser performance?
Web vitals regression is an agent-written signal for page load and responsiveness, but the Sazabi browser SDK does not capture Core Web Vitals, so it relies on timing data you already send.
Sources
- Issue fields and lifecycle, agent analysis and evidence (accessed Nov 8, 2026)
- Issue triggered notification and severity-based delivery rules (accessed Nov 8, 2026)
- Signals and managed investigation (accessed Nov 8, 2026)
- Listing sensor signals from the CLI (accessed Nov 8, 2026)