Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Cuándo ocurrió el hecho en la productora. |
| received_at | Timestamp | Cuando el servicio de ingesta aceptó el suceso. |
| source | Utf8 | Nombre del productor o flujo de trabajo estable. |
| environment | Utf8 | Entorno de implementación. |
Copiar la consulta
SELECT
source,
MAX(timestamp_utc) AS latest_event_at,
MAX(received_at) AS latest_received_at,
date_part('second', now() - MAX(received_at)) / 60.0
AS minutes_since_receive,
AVG(date_part('second', received_at - timestamp_utc)) / 60.0
AS average_delivery_delay_minutes
FROM telemetry_events
WHERE received_at >= now() - INTERVAL '24 hours'
AND environment = 'production'
GROUP BY source
ORDER BY minutes_since_receive DESC;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
Minutos desde el último evento recibido
La sincronización de facturación está obsoleta a pesar de que el retraso normal en la entrega es pequeño.
| source | latest_event_at | latest_received_at | minutes_since_receive | average_delivery_delay_minutes |
|---|---|---|---|---|
| billing_sync | 2026-07-27 12:11 | 2026-07-27 12:12 | 48 | 1,4 |
| api_gateway | 2026-07-27 12:59 | 2026-07-27 12:59 | 1 | 0,1 |
| queue_workers | 2026-07-27 12:58 | 2026-07-27 12:59 | 1 | 0,8 |
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, illustrative 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
- 1MAX(received_at) mide si cada fuente sigue entregando datos.
- 2La diferencia promedio entre received_at y timestamp_utc mide el retraso en la entrega por separado del silencio de la fuente.
- 3El filtro de producción evita que el tráfico de desarrollo haga que una fuente de producción detenida parezca saludable.
Casos extremos para decidir
- Una fuente que emite solo una vez al día necesita un umbral de actualización diferente al de una fuente API.
- El desfase del reloj del productor puede hacer que el retraso en la entrega sea negativo; monitorear y corregir la sincronización del reloj.
- Una mirada retrospectiva de 24 horas no puede devolver fuentes que hayan estado en silencio durante más tiempo que la ventana. Mantenga un registro de fuentes esperadas para monitorear las ausencias.
Panel recomendado
- Gráfico de barras: minutes_since_receive por fuente
- Tendencia: retraso medio en la entrega por fuente
- Tabla: fuentes esperadas que faltan en la ventana actual
Guía de alerta
Alerta cuando minutes_since_receive excede el cronograma de origen más un período de gracia documentado.
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
Detectar latidos de servicio faltantes
Encuentre servicios, trabajadores o tareas programadas que dejaron de informar antes de que apareciera un evento de falla.
Receta abiertaBuscar ID de eventos duplicados
Identifique identificadores de eventos entregados más de una vez y mida si el manejo de duplicados está funcionando.
Receta abiertaMedir la tasa de nulos de campos obligatorios
Encuentre contratos de eventos en los que un campo obligatorio de cuenta, estado o correlación esté desapareciendo.
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.