Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Hora de ocurrencia del evento. |
| event_id | Utf8 | Identificador estable reutilizado para reintentos de entrega. |
| event_name | Utf8 | Nombre del contrato del evento. |
| source | Utf8 | Nombre del productor. |
Copiar la consulta
SELECT
event_id,
event_name,
source,
COUNT(*) AS deliveries,
MIN(timestamp_utc) AS first_seen_at,
MAX(timestamp_utc) AS last_seen_at
FROM telemetry_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
AND event_id IS NOT NULL
GROUP BY event_id, event_name, source
HAVING COUNT(*) > 1
ORDER BY deliveries DESC, last_seen_at DESC
LIMIT 100;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
Entregas repetidas por ID de evento
El evento de factura se entregó cuatro veces y necesita un conteo idempotente en sentido descendente.
| event_id | event_name | source | deliveries | first_seen_at | last_seen_at |
|---|---|---|---|---|---|
| evt_8f31 | invoice_paid | stripe_webhook | 4 | 12:01:03 | 12:06:44 |
| evt_77ac | job_completed | billing_worker | 2 | 10:14:22 | 10:14:39 |
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
- 1La agrupación por event_id expone los reintentos de entrega sin asumir que los eventos que se cierran en el tiempo están duplicados.
- 2Incluyendo event_name y capturas de origen de productores que reutilizan accidentalmente un identificador en diferentes contratos.
- 3La primera y la última marca de tiempo muestran si los duplicados llegan en un breve reintento o mucho más tarde.
Casos extremos para decidir
- No genere un nuevo ID de evento para cada reintento si los consumidores intermedios necesitan idempotencia.
- Un identificador reutilizado en eventos no relacionados es un defecto de instrumentación, no un duplicado inofensivo.
- Si los duplicados se eliminan antes del almacenamiento, emita un resultado de deduplicación separado para que el comportamiento de reintento siga siendo observable.
Panel recomendado
- Estadísticas: ID de eventos duplicados en el período seleccionado
- Barras: entregas duplicadas por fuente
- Tabla: identificadores repetidos más recientes
Guía de alerta
Alerta cuando el volumen duplicado o el recuento máximo de entrega supera la línea base de reintento normal.
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
Medir la latencia del webhook y la tasa de duplicados
Compare la latencia de procesamiento, las entregas duplicadas y las fallas por proveedor de webhook y tipo de evento.
Receta abiertaMedir la frescura de la ingestión de eventos
Encuentre fuentes de eventos que dejaron de entregar datos o que llegan mucho más tarde de lo que ocurrieron.
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.