Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Hora de recepción del evento. |
| event_name | Utf8 | Nombre de evento lógico estable. |
| schema_version | Utf8 | Versión de contrato explícita como v2. |
| producer_version | Utf8 | Creación de aplicaciones o lanzamiento de trabajadores. |
Copiar la consulta
WITH version_counts AS (
SELECT
event_name,
producer_version,
schema_version,
COUNT(*) AS events
FROM product_events
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY event_name, producer_version, schema_version
),
producer_totals AS (
SELECT
event_name,
producer_version,
SUM(events) AS producer_events
FROM version_counts
GROUP BY event_name, producer_version
)
SELECT
counts.event_name,
counts.producer_version,
counts.schema_version,
counts.events,
100.0 * counts.events / NULLIF(totals.producer_events, 0)
AS version_share_pct
FROM version_counts AS counts
JOIN producer_totals AS totals
ON totals.event_name = counts.event_name
AND totals.producer_version = counts.producer_version
ORDER BY counts.event_name, counts.producer_version, counts.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
Cuota de versión de esquema por productor
La implementación web ha convergido en la versión 2, mientras que una versión de trabajo todavía emite una parte sustancial de la versión 1.
| event_name | producer_version | schema_version | events | version_share_pct |
|---|---|---|---|---|
| checkout_completed | web-1848 | v2 | 9840 | 99,72 |
| checkout_completed | worker-411 | v1 | 742 | 38,11 |
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
- 1El primer CTE cuenta cada contrato de evento observado por productor y versión de esquema.
- 2Los totales de los productores crean el denominador necesario para comparar de manera justa las emisiones de alto y bajo volumen.
- 3Mantener ambas versiones en el resultado hace visible una implementación mixta en lugar de informar solo la versión más reciente.
Casos extremos para decidir
- Los eventos históricos no versionados necesitan una etiqueta heredada explícita en lugar de un NULL silencioso.
- Los clientes móviles y de escritorio pueden tener ventanas de implementación mucho más largas que las versiones de servidor.
- Una etiqueta de versión es útil sólo cuando se documentan cambios semánticos junto a ella.
Panel recomendado
- Barras: version_share_pct por producer_version
- Tendencia: participación de la versión heredada durante el tiempo de implementación
- Tabla: nombres de eventos con más de una versión activa
Guía de alerta
Alerta cuando un productor del lado del servidor sigue emitiendo un contrato retirado más allá de la ventana de migración; Utilice ventanas de revisión más largas para los lanzamientos de clientes.
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 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.