Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Hora de finalización de la solicitud en UTC. |
| route_template | Utf8 | Plantilla de ruta estable. |
| latency_ms | Float64 | Duración de la solicitud en milisegundos. |
| status_code | Int64 | Código de estado de respuesta HTTP. |
Copiar la consulta
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_template | requests | p50_ms | p95_ms | p99_ms |
|---|---|---|---|---|
| /api/reports/export | 50 | 800 | 800 | 800 |
| /api/projects/:id/sync | 50 | 320 | 320 | 320 |
| /api/search | 50 | 120 | 120 | 120 |
Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.
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
- 1approx_percentile_cont utiliza la implementación t-digest de DataFusion, que es eficiente para tablas de eventos grandes.
- 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.
- 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 alertaPon 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
Calcular la tasa de errores de API por ruta
Utilice SQL para clasificar las rutas API según una tasa de error 5xx mientras protege el resultado del ruido de bajo volumen.
Receta abiertaCalcular la tasa de consumo de presupuesto de errores de API
Convierta los errores de solicitud por hora en una serie de tasa de quemado de SLO que muestre qué tan rápido se consume el presupuesto de errores permitido.
Receta abiertaCompare la confiabilidad de API por versión
Compare el tráfico, la tasa 5xx y la latencia p95 entre versiones de aplicaciones sin atribuir cada cambio posterior a la implementación a la implementación.
Receta abiertaEjecú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.