Capacity Risk Alerts: Issues When a Pool, Queue or Quota Heads for Its Limit
Last verified on Nov 10, 2026.
Trouble that is visible before it hurts
A capacity risk is a resource heading toward a limit while everything still works: a connection pool, a thread pool, a disk, a queue, an API quota. The limit is hit later, usually at peak traffic, and then looks like an outage. The warning is in the logs hours or weeks ahead.
Seven signals, all written for your system
These limits belong to your stack, so the Sazabi agent sets up sensors for the resources it finds in your logs. It writes, backtests and maintains them, and keeps them current as your system changes. You set nothing up.
- Saturation. CPU, memory, connection pools, thread pools or disk near full.
- Approaching a limit. Cloud quotas, burst credits, API rate limits, file handles or plan limits running low.
- Backlog growth. A queue that grows faster than it drains.
- Crash loops. Restarts, out-of-memory kills and failing health checks, often what memory pressure becomes.
- Boot and cold-start creep. Services taking longer to start, which can follow a drained resource.
- Vendor rate limiting. A provider throttling your requests, such as 429s from an LLM API at peak.
- Cardinality jump. A field suddenly carrying far more distinct values, such as thousands of new cache keys a minute.
Some signals in this category are not covered today, including a warning about an expiring certificate.
Example: a pool that peaks near full
This is an example, not output from a real project. The orders-api service logs its database pool at regular intervals:
2026-11-08T12:00:00Z INFO orders-api db_pool in_use=22 max=50 waiting=0
2026-11-08T12:30:00Z INFO orders-api db_pool in_use=41 max=50 waiting=0
2026-11-08T13:00:00Z INFO orders-api db_pool in_use=48 max=50 waiting=6No error appears at 13
, and requests are still being served. Yet the pool is almost full and requests have started to queue. A question such as "Tell me when the orders-api database pool stays close to its maximum at peak" catches this, a few days before the first timeout.An example issue:
- Name: orders-api database pool close to its limit at peak
- Description: In-use connections reached 48 of 50 and requests began waiting. The peak is higher each day this week, tracking order volume.
- Severity: medium
What the issue gives you
The agent investigates before it opens the issue, so the analysis can show how the reading has moved, not just its latest value. From the issue you can ask it follow-up questions, such as which endpoint holds connections longest, then hand a fix to a coding agent. Severity decides routing: a pool at its maximum during a sale may be high, while slow drift in a disk reading is usually low.
Capacity warnings are easy to defer, so delivery rules help. Send low and medium issues for the platform component to a weekly-reviewed channel, and send high ones to whoever is on call.
Getting the readings in
Capacity sensors need the number. Two routes work:
- Write the reading into a log line, as above.
- Send OpenTelemetry metrics to the same project through the OpenTelemetry integration. Metric data points arrive through the same intake as logs.
Cloud-side limits, such as burst credits, show up if you forward platform logs, for example through the AWS integration.
What it does not do
- It does not read a resource that is never logged or sent as a metric.
- It does not plan purchases or size clusters.
- It does not forecast an exact time of failure.
- Generic changes in the log stream, such as a jump in log volume, are on the log volume spikes page.
Related
The query-level view is in the capacity risks guide, and the cardinality jumps guide covers one signal in depth. When a limit is actually hit, you will be on the outages or performance degradation page. Issues detected are metered; see 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.
- Cardinality jump: A field suddenly has far more distinct values. Example: Thousands of new cache keys per minute.
- Boot and cold-start creep: Services take longer to start. Example: Deploys take 3x longer to become healthy.
- Approaching a limit: Cloud quotas, burst credits, API rate limits, file handles or plan limits run low. Example: File system burst credits draining, which later shows up as slow boots.
- Saturation: CPU, memory, connection pools, thread pools or disk near full. Example: Database connection pool at 95% during peaks.
- Backlog growth: A queue grows faster than it drains. Example: Job queue grows for 6 hours straight.
- Crash loops: Restarts, out-of-memory kills and failing health checks. Example: Worker restarts every 12 minutes.
- Vendor rate limiting: A vendor throttles your requests. Example: 429s from your LLM provider at peak.
Frequently Asked Questions
Do I have to set up capacity sensors?
No. Capacity depends on your system, so the Sazabi agent sets up the sensors for your project after reading your logs and maintains them over time.
Where do the readings come from?
From your logs or from OpenTelemetry metrics sent to the same project. If a pool or disk level never reaches Sazabi, there is nothing to ask about.
Does it forecast when a disk will fill?
Not as a prediction. The sensors fire when a reading is heading for its limit, such as a pool near full during peaks, and the agent estimates impact in the investigation.
Sources
- Issue fields, severity, agent analysis and evidence (accessed Nov 8, 2026)
- Issue triggered notification, delivery rules by severity and component (accessed Nov 8, 2026)
- OpenTelemetry metrics sent to the same intake as logs (accessed Nov 8, 2026)
- Signals and managed investigation (accessed Nov 8, 2026)