Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Tiempo de finalización del intento. |
| job_id | Utf8 | Identificador de trabajo lógico estable. |
| job_name | Utf8 | Tipo de trabajo estable. |
| attempt | Int64 | Número de intento basado en uno. |
| status | Utf8 | completado, reintentado o fallido. |
Copiar la consulta
SELECT
date_trunc('hour', timestamp_utc) AS hour,
job_name,
COUNT(*) AS attempts,
COUNT(DISTINCT job_id) AS logical_jobs,
SUM(CASE WHEN attempt > 1 THEN 1 ELSE 0 END) AS retry_attempts,
100.0 * SUM(CASE WHEN attempt > 1 THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS retry_attempt_rate_pct,
100.0 * SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS failed_attempt_rate_pct
FROM job_attempts
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY date_trunc('hour', timestamp_utc), job_name
HAVING COUNT(*) >= 20
ORDER BY retry_attempt_rate_pct DESC, attempts 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 reintentos por trabajo
La sincronización de CRM produce muchos más intentos que trabajos lógicos y consume la capacidad de los trabajadores con el trabajo repetido.
| hour | job_name | attempts | logical_jobs | retry_attempts | retry_attempt_rate_pct | failed_attempt_rate_pct |
|---|---|---|---|---|---|---|
| 2026-07-27 14:00 | sync_crm_accounts | 1840 | 492 | 1118 | 60,76 | 22,34 |
| 2026-07-27 14:00 | send_receipt_email | 3180 | 3061 | 119 | 3,74 | 0,44 |
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 distintas identificaciones de trabajo estiman el trabajo lógico útil, mientras que el recuento bruto mide los intentos de los trabajadores.
- 2Los números de intento superiores a uno aíslan el trabajo repetido sin tratar un éxito final como un primer intento.
- 3La tasa de fallas permanece junto al porcentaje de reintentos, por lo que una dependencia transitoria reintentada deliberadamente se distingue de una falla terminal.
Casos extremos para decidir
- Los trabajos de distribución pueden crear legítimamente varias identificaciones infantiles; defina el identificador lógico de trabajo antes de comparar los recuentos.
- Los reintentos inmediatos y las cancelaciones programadas tienen diferentes efectos sobre la capacidad y pueden necesitar campos separados.
- Una tormenta de reintento puede moverse entre períodos de una hora; agregue una consulta operativa más corta cuando el tiempo de respuesta sea importante.
Panel recomendado
- Barras: retry_attempt_rate_pct por trabajo
- Tendencia: intentos y logical_jobs
- Tabla: trabajos con más intentos y tipo de error más reciente
Guía de alerta
Alerta cuando el porcentaje de reintentos, el volumen de intentos y la antigüedad de la cola aumentan juntos para depósitos completos consecutivos.
Leer configuración de alertaPon la receta a trabajar
Instrumentación y guías relacionadas.
Continuar el análisis
Medir el reintento del trabajo en segundo plano y la tasa de fallas
Encuentre trabajos no confiables comparando ejecuciones exitosas, reintentos, fallas y duración de cola.
Receta abiertaEncuentre trabajos en segundo plano estancados con SQL
Únase a los eventos de inicio y finalización del trabajo para identificar el trabajo que excedió su ventana de finalización esperada.
Receta abiertaMedir el tiempo de espera de la cola por trabajo
Separe el tiempo de espera en una cola de la duración de la ejecución y compare el retraso de p50 y p95 por nombre de trabajo.
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.