Saltar al contenido
Telemetry
Fiabilidad de la API receta SQL

Calcule la latencia API p50, p95 y p99

Compare la latencia media y de cola por punto final con SQL percentil compatible con DataFusion.

Intermedioapi_requestsRevisado 2026-07-27Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Compatibilidad con SQL, contrato de eventos, resultados sintéticos y advertencias operativas. Revisar los estándares y la propiedad

Pregunta respondida

¿Qué puntos finales tienen la peor latencia de cola?

Los promedios ocultan las solicitudes lentas que recuerdan los usuarios. La comparación de p50, p95 y p99 revela si un punto final es consistentemente lento o tiene una cola larga causada por un conjunto más pequeño de solicitudes.

Contrato de evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampHora de finalización de la solicitud en UTC.
route_templateUtf8Plantilla de ruta estable.
latency_msFloat64Duración de la solicitud en milisegundos.
status_codeInt64Código de estado de respuesta HTTP.
DataFusionSQL

Copiar la consulta

sql
SELECT
  route_template,
  COUNT(*) AS requests,
  approx_percentile_cont(latency_ms, 0.50) AS p50_ms,
  approx_percentile_cont(latency_ms, 0.95) AS p95_ms,
  approx_percentile_cont(latency_ms, 0.99) AS p99_ms
FROM api_requests
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND status_code < 500
GROUP BY route_template
HAVING COUNT(*) >= 50
ORDER BY p95_ms DESC
LIMIT 10;

Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.

Resultado de la consulta

latencia p95 por ruta

Las solicitudes de exportación tienen la cola más lenta y la mayor brecha entre el desempeño típico y el peor.

route_templaterequestsp50_msp95_msp99_ms
/api/reports/export50800800800
/api/projects/:id/sync50320320320
/api/search50120120120

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

p95 latency by route: gráfico estático de valores sintéticos de p95_ms del resultado del ejemplo Calculate p50, p95, and p99 API Latency
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descargar el accesorio público

El paquete JSON incluye el contrato de evento escrito, reproducible filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.

Cómo funciona el SQL

  1. 1approx_percentile_cont utiliza la implementación t-digest de DataFusion, que es eficiente para tablas de eventos grandes.
  2. 2Filtrar las respuestas 5xx hace que esta sea una vista de latencia de solicitud exitosa. Cree una vista separada de solicitudes fallidas cuando la duración del error sea importante.
  3. 3La diferencia entre p50 y p95 suele ser más útil que cualquiera de los dos números por separado: una brecha amplia indica caminos lentos intermitentes.

Casos extremos para decidir

  • No compare puntos finales con trabajos fundamentalmente diferentes sin preservar el contexto de la ruta.
  • Las rutas de streaming y las exportaciones de largo plazo pueden necesitar objetivos de nivel de servicio separados.
  • Mantenga la latencia en una unidad coherente y utilice un campo numérico.

Panel recomendado

  • Barras agrupadas: p50_ms y p95_ms por route_template
  • Gráfico de líneas: p95_ms a lo largo del tiempo para las rutas más lentas
  • Tabla: solicitudes individuales por encima del p99 de la ruta

Guía de alerta

Alerta cuando el p95 de una ruta de gran volumen excede su objetivo de servicio durante tres períodos de tiempo completos.

Leer configuración de alerta

Pon la receta a trabajar

Instrumentación y guías relacionadas.

Definir los datos de origen

Esquemas de eventos para este análisis.

Continuar el análisis

Ejecútelo en eventos reales.

Crea una tabla, adapta los campos y guarda el resultado.

Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.

Obtén una clave API