Percentiles de latencia y distribuciones con SQL
Un promedio comprime una distribución en un número. Esto es útil para totales y tendencias amplias, pero puede ocultar las experiencias lentas que importan durante un incidente. Los percentiles responden a una pregunta diferente: p95 es el valor en el que o por debajo del cual caen aproximadamente el 95 por ciento de las observaciones.
Consultar varios puntos de la distribución.
Telemetry utiliza Apache DataFusion SQL. Utilice approx_percentile_cont para estimaciones prácticas de percentiles:
SELECT
route_template,
COUNT(*) AS requests,
approx_percentile_cont(duration_ms, 0.50) AS p50_ms,
approx_percentile_cont(duration_ms, 0.95) AS p95_ms,
approx_percentile_cont(duration_ms, 0.99) AS p99_ms,
MAX(duration_ms) AS maximum_ms
FROM api_request_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY route_template
HAVING COUNT(*) >= 100
ORDER BY p95_ms DESC;
Mantenga el recuento de solicitudes en el resultado. Un percentil de un grupo pequeño es inestable y p99 no es significativo cuando un grupo contiene sólo un puñado de observaciones. Los resultados aproximados tampoco deben presentarse con precisión decimal artificial.
Interpretar la forma, no sólo la clasificación
Si p50, p95 y p99 aumentan juntos, es posible que todo el flujo de trabajo haya cambiado. Si p50 permanece estable mientras p99 aumenta, un subconjunto de solicitudes está experimentando latencia de cola. El máximo es útil para la investigación, pero un valor atípico no debería definir el rendimiento normal.
Agrupe solo por dimensiones que pueden cambiar una acción: plantilla de ruta, dependencia, versión, región o un nombre de operación delimitado. Las URL sin formato y el texto de consulta sin restricciones crean grupos de alta cardinalidad que son difíciles de comparar y pueden exponer valores confidenciales.
Los percentiles no son porcentajes. Una latencia p95 de 800 milisegundos no significa que el 95 por ciento de las solicitudes sean lentas; significa que alrededor del 95 por ciento se completó en ese valor o por debajo de él. Empareje el número con un objetivo revisado y una unidad explícita.
Utilice Receta de latencia API, receta de latencia de dependencia o receta de espera en cola para ver ejemplos probados. El guía de visualización de distribución explica cuándo un histograma es más revelador que tres puntos percentiles.