95-й перцентиль времени ответа.
$$P95 = quantile(0.95, latencies)$$
P95 latency = 95% запросов выполнились быстрее этого значения. Используется вместо среднего потому что среднее искажается длинным хвостом.
Среднее latency может быть 100ms но P99=2s. Значит 1% юзеров видят 20-кратное замедление. Среднее это скрывает.
SELECT
endpoint,
percentile_cont(0.50) WITHIN GROUP (ORDER BY duration_ms) AS p50,
percentile_cont(0.95) WITHIN GROUP (ORDER BY duration_ms) AS p95,
percentile_cont(0.99) WITHIN GROUP (ORDER BY duration_ms) AS p99
FROM api_logs
WHERE timestamp >= now() - interval '1 hour'
GROUP BY endpoint
ORDER BY p95 DESC;