# PostgreSQL incident triage

## Scope and safety
- [ ] Incident start time, affected service and database endpoint recorded
- [ ] Current writer/read-replica roles confirmed
- [ ] Recent deployments, failovers and maintenance events checked
- [ ] Evidence owner and intervention approver identified

## Availability
- [ ] Fresh connection tested separately from existing pools
- [ ] Server process and listener health confirmed
- [ ] Database logs captured for the incident window
- [ ] Client, pooler and proxy errors correlated by timestamp

## Capacity and sessions
- [ ] Sessions counted by state, application and source
- [ ] Connection usage compared with configured and reserved capacity
- [ ] Long-running and idle-in-transaction sessions identified
- [ ] CPU, memory, disk latency and storage capacity reviewed

## Concurrency
- [ ] Waiting sessions and blocking process IDs captured
- [ ] Oldest transactions and lock types identified
- [ ] Deadlock details retained from server logs
- [ ] Any cancellation target tied to a known workload and transaction

## Replication and durability
- [ ] Replication state, lag and slot retention checked
- [ ] WAL filesystem growth and archive failures checked
- [ ] Recovery objective and last successful restore evidence available
- [ ] Transaction outcome uncertainty documented before retries
