Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Hora de ocurrencia del evento. |
| event_name | Utf8 | Nombre del contrato de evento estable. |
| account_id | Utf8 | Identificador de cuenta requerido para estos eventos. |
| producer_version | Utf8 | Versión de la aplicación que emitió el evento. |
Copiar la consulta
SELECT
event_name,
producer_version,
COUNT(*) AS events,
SUM(CASE
WHEN account_id IS NULL OR trim(account_id) = '' THEN 1
ELSE 0
END) AS missing_account_id,
100.0 * SUM(CASE
WHEN account_id IS NULL OR trim(account_id) = '' THEN 1
ELSE 0
END) / NULLIF(COUNT(*), 0) AS missing_rate_pct
FROM product_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY event_name, producer_version
HAVING COUNT(*) >= 20
ORDER BY missing_rate_pct DESC, events 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
Tasa de ID de cuenta faltante por evento y productor
El evento del panel tiene una regresión de integridad específica de la versión.
| event_name | producer_version | events | missing_account_id | missing_rate_pct |
|---|---|---|---|---|
| dashboard_viewed | web-1842 | 6420 | 1187 | 18,49 |
| query_completed | api-918 | 3810 | 7 | 0,18 |
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 expresión CASE considera que faltan tanto NULL como una cadena vacía.
- 2La agrupación por producer_version hace que las regresiones de implementación sean más fáciles de aislar.
- 3La regla del volumen mínimo evita que un puñado de eventos de desarrollo dominen el informe.
Casos extremos para decidir
- Evalúe únicamente un campo en contratos de eventos cuando sea realmente necesario.
- Los eventos de productos anónimos pueden legítimamente carecer de account_id y deben utilizar una regla de integridad separada.
- Un marcador de posición como desconocido no es NULL pero aún puede ocultar la identidad faltante; medir los valores centinela por separado.
Panel recomendado
- Barras: missing_rate_pct por event_name y producer_version
- Tendencia: tasa de finalización de contratos críticos
- Tabla: filas recientes a las que les falta el campo obligatorio
Guía de alerta
Alerta cuando un contrato de evento crítico excede su presupuesto de campo faltante documentado en un volumen significativo.
Leer configuración de alertaPon la receta a trabajar
Instrumentación y guías relacionadas.
Continuar el análisis
Medir 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 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 eventos que llegan tarde
Mida el retraso en la entrega de eventos por fuente e identifique a los productores que envían datos obsoletos o desordenados.
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.