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 delimitada, nunca la URL sin formato. |
| status_code | Int64 | Estado de respuesta HTTP. |
| environment | Utf8 | Entorno de implementación. |
Copiar la consulta
SELECT
route_template,
COUNT(*) AS requests,
SUM(CASE WHEN status_code >= 500 THEN 1 ELSE 0 END) AS errors,
60.0 * COUNT(*) / NULLIF(
date_part('epoch', MAX(timestamp_utc) - MIN(timestamp_utc)),
0
) AS requests_per_minute
FROM api_throughput_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY route_template
ORDER BY requests_per_minute DESC, route_template;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
Rendimiento de solicitudes observado por ruta
La búsqueda tiene la tasa de solicitudes observada más alta y también tiene una respuesta 5xx para investigar.
| route_template | requests | errors | requests_per_minute |
|---|---|---|---|
| /api/search | 6 | 1 | 0,2 |
| /api/checkout | 4 | 0 | 0,13 |
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
- 1La agrupación en una plantilla de ruta controlada evita una serie por identificador de recurso o cadena de consulta.
- 2El denominador utiliza el tramo observado para cada ruta, lo cual es más seguro para rutas dispersas que dividir por toda la ventana retrospectiva.
- 3El recuento de errores permanece en el resultado, por lo que un aumento de tráfico se puede comparar con la confiabilidad en el mismo nivel.
Casos extremos para decidir
- Para los gráficos de producción, agregue en períodos de tiempo fijos completos para que los períodos adyacentes sean directamente comparables.
- Una ruta con una solicitud no tiene tramo observado; NULLIF devuelve nulo en lugar de inventar una tasa.
- Separar los controles de salud internos y el tráfico sintético si distorsionarían la demanda de los clientes.
Panel recomendado
- Tendencia: solicitudes por minuto en períodos completos de cinco minutos
- Barras: requests_per_minute por route_template
- Superposición: tasa de error y marcadores de implementación
Guía de alerta
Alerta sobre una desviación sostenida de una línea de base revisada, no sobre una única ruta de gran volumen.
Leer configuración de alertaPon la receta a trabajar
Instrumentación y guías relacionadas.
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 abiertaCalcule la latencia API p50, p95 y p99
Compare la latencia media y de cola por punto final con SQL percentil compatible con DataFusion.
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 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.