Production never sleeps.
But your on-call doesn't have to.
RemOps
Acme Payments · 3 incidents · live
| Alert | Severity | State | Updated | |
|---|---|---|---|---|
| payments.api.p99 > 400msPagerDuty · checkout-api | critical | investigating | just now | |
| KubePodRestartingAlertmanager · payments | warning | resolved | 2h ago | |
| RDS CPU > 80%Datadog · payments-db | warning | resolved | Yesterday |
PagerDuty · checkout-api · prod-us-east-1
ERROR pool exhausted — waiting for connectionERROR pool exhausted — waiting for connectionWARN active=10 max=10 · queue depth 48ERROR could not obtain connection from poolpayments/values.yaml - default_pool_size: 50 + default_pool_size: 10
PR #4821 cut default_pool_size from 50 → 10. Under checkout load, Postgres wait events spiked and p99 collapsed.
payments/values.yaml · rev 13 - default_pool_size: 50 + default_pool_size: 10
payments-db-pool to rev 12Set default_pool_size: 50 and restart payments-api
$ kubectl -n payments patch cm payments-db-pool --patch '…pool_size: 50'
$ kubectl -n payments rollout restart deploy/payments-api
waiting for rollout…
✓ rollout complete · p99 1.84s → 210ms
✓ INC-2847 resolved
Summary Pool size reduced in PR #4821 caused connection exhaustion under load.
Impact Checkout latency 1.84s for 3m 12s · ~4.2k affected requests.
Fix Rollback approved · MTTR 54s from alert.
Block deploys that reduce default_pool_size below 40 without load test evidence.