Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Tiempo de finalización del procesamiento. |
| provider | Utf8 | Proveedor de webhook. |
| event_type | Utf8 | Categoría de evento del proveedor. |
| idempotency_outcome | Utf8 | new_event o duplicado. |
| status | Utf8 | éxito o fracaso. |
| latency_ms | Float64 | Duración del procesamiento. |
Copiar la consulta
SELECT
provider,
event_type,
COUNT(*) AS deliveries,
SUM(CASE WHEN idempotency_outcome = 'duplicate' THEN 1 ELSE 0 END) AS duplicates,
SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failures,
100.0 * SUM(CASE WHEN idempotency_outcome = 'duplicate' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS duplicate_rate_pct,
approx_percentile_cont(latency_ms, 0.95) AS p95_latency_ms
FROM webhook_deliveries
WHERE timestamp_utc >= now() - INTERVAL '7 days'
GROUP BY provider, event_type
ORDER BY duplicate_rate_pct DESC, failures 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
Entregas de webhooks duplicados y fallidos
Los fallos de pago Stripe tienen la tasa de duplicación más alta y más fallos de terminal.
| provider | event_type | deliveries | duplicates | failures | duplicate_rate_pct | p95_latency_ms |
|---|---|---|---|---|---|---|
| stripe | invoice.payment_failed | 480 | 34 | 9 | 7,08 | 1180 |
| github | push | 2940 | 42 | 3 | 1,43 | 420 |
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
- 1Las expresiones CASE calculan recuentos de duplicados y errores de la misma población de entrega.
- 2La tasa de duplicación es una característica de entrega; no prueba efectos comerciales duplicados.
- 3La latencia de cola muestra si el controlador se está acercando al tiempo de espera del proveedor o al límite de reintento.
Casos extremos para decidir
- Un duplicado se puede deduplicar exitosamente y no debería contarse automáticamente como un error.
- Las políticas de reintento del proveedor y los volúmenes de eventos difieren, por lo tanto, conserve el proveedor y el tipo de evento.
- Nunca almacene firmas de webhooks ni cargas útiles de pago sin procesar en esta tabla.
Panel recomendado
- Barras apiladas: duplicados y fallos por tipo de evento
- Tendencia: latencia del webhook p95
- Tabla: trabajos posteriores fallidos recientes
Guía de alerta
Alerta sobre fallas de procesamiento repetidas o efectos secundarios duplicados, no se espera entrega deduplicada.
Leer configuración de alertaPon la receta a trabajar
Instrumentación y guías relacionadas.
Continuar el análisis
Medir la recuperación del reintento del webhook
Separe las fallas permanentes del webhook de las entregas que se recuperaron en un intento posterior.
Receta abiertaMedir la finalización del webhook de un extremo a otro
Siga cada webhook desde su recepción hasta su finalización y mida el porcentaje que finaliza dentro de un objetivo operativo.
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.