Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Hora del evento del ciclo de vida en UTC. |
| incident_id | Utf8 | Identificador de incidentes estable. |
| service | Utf8 | Servicio primario afectado. |
| event_name | Utf8 | impact_started, detectado o resuelto. |
| severity | Utf8 | Se revisó la gravedad del incidente. |
| environment | Utf8 | Entorno de implementación. |
Copiar la consulta
WITH incident_times AS (
SELECT
incident_id,
service,
MIN(CASE WHEN event_name = 'impact_started' THEN timestamp_utc END)
AS impact_started_at,
MIN(CASE WHEN event_name = 'detected' THEN timestamp_utc END)
AS detected_at,
MAX(CASE WHEN event_name = 'resolved' THEN timestamp_utc END)
AS resolved_at
FROM incident_lifecycle_events
WHERE timestamp_utc >= now() - INTERVAL '90 days'
AND environment = 'production'
GROUP BY incident_id, service
)
SELECT
service,
COUNT(*) AS incidents,
AVG(date_part('epoch', detected_at - impact_started_at) / 60.0)
AS average_detection_minutes,
AVG(date_part('epoch', resolved_at - detected_at) / 60.0)
AS average_recovery_minutes
FROM incident_times
WHERE impact_started_at IS NOT NULL
AND detected_at IS NOT NULL
AND resolved_at IS NOT NULL
GROUP BY service
ORDER BY average_recovery_minutes DESC, service;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
Tiempo de detección y recuperación de incidentes
El trabajador de facturación tiene los intervalos de detección y recuperación observados más largos.
| service | incidents | average_detection_minutes | average_recovery_minutes |
|---|---|---|---|
| billing-worker | 1 | 15 | 60 |
| checkout-api | 2 | 7,5 | 32,5 |
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
- 1Los eventos del ciclo de vida se convierten en una fila por incidente antes de calcular la duración.
- 2Las medidas de detección impactan el inicio de la detección; medidas de recuperación detección a resolución.
- 3Los incidentes incompletos se excluyen del promedio de duración completa y deben informarse por separado.
Casos extremos para decidir
- Defina si la recuperación finaliza con la mitigación, la restauración completa o el cierre del incidente y utilice una regla de manera consistente.
- Los incidentes reabiertos pueden necesitar múltiples intervalos de impacto en lugar de un tiempo máximo de resolución.
- Los promedios son ilustrativos; informar medianas y percentiles cuando el volumen de incidentes sea suficiente.
Panel recomendado
- Barras: minutos promedio de detección y recuperación por servicio
- Tendencia: duración de incidentes completados por mes
- Tabla: incidentes abiertos a los que les falta un evento resuelto
Guía de alerta
Utilice alertas operativas para impactos en vivo; Utilice este resultado como revisión de la calidad de la respuesta y métrica de tendencia.
Leer configuración de alertaPon la receta a trabajar
Instrumentación y guías relacionadas.
Continuar el análisis
Encuentre la saturación de recursos de host y contenedor
Clasifique las fuentes de infraestructura según la utilización sostenida de CPU, memoria y disco, preservando al mismo tiempo el volumen de muestra.
Receta abiertaEncuentre errores de caché y riesgo de estampida
Compare la tasa de aciertos, el costo de backend y los errores simultáneos mediante un patrón de clave de caché limitado.
Receta abiertaEncuentre reinicios de Kubernetes por carga de trabajo
Clasifique las cargas de trabajo de Kubernetes por eventos de reinicio de contenedores, fallas de preparación y recuento de reinicios acumulados observados.
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.