Saltar al contenido
Tareas en segundo plano receta SQL

Medir el crecimiento de la cola de mensajes fallidos

Compare la creación y resolución de mensajes fallidos para encontrar colas que acumulen trabajo irrecuperable.

Intermediojob_eventsRevisado 2026-07-27Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Revisamos la sintaxis SQL, los campos necesarios, los resultados de ejemplo y las limitaciones de la consulta. Quién revisa esta página

Pregunta respondida

¿Qué colas agregan trabajos fallidos más rápido de lo que los resuelven?

Cuente los mensajes fallidos pendientes, los nuevos y los resueltos. Compare esas cifras para ver si la cola pendiente disminuye o crece.

Esquema del evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampHora del evento del ciclo de vida del trabajo.
job_idUtf8Identificador de trabajo lógico estable.
queue_nameUtf8Cola propietaria del trabajo.
event_nameUtf8dead_letter_created o dead_letter_resolved.
error_typeUtf8Fallo terminal categorizado.
DataFusionSQL

Copiar la consulta

sql
SELECT
  date_trunc('day', timestamp_utc) AS day,
  queue_name,
  SUM(CASE
    WHEN event_name = 'dead_letter_created' THEN 1 ELSE 0
  END) AS created_jobs,
  SUM(CASE
    WHEN event_name = 'dead_letter_resolved' THEN 1 ELSE 0
  END) AS resolved_jobs,
  SUM(CASE
    WHEN event_name = 'dead_letter_created' THEN 1
    WHEN event_name = 'dead_letter_resolved' THEN -1
    ELSE 0
  END) AS net_queue_change
FROM job_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
  AND event_name IN ('dead_letter_created', 'dead_letter_resolved')
GROUP BY date_trunc('day', timestamp_utc), queue_name
ORDER BY day, queue_name;

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

Empleos fallidos creados y resueltos

Facturación acumuló 22 empleos fallidos adicionales el 26 de julio mientras que las importaciones redujeron su cola.

dayqueue_namecreated_jobsresolved_jobsnet_queue_change
2026-07-25billing18162
2026-07-26billing31922
2026-07-27imports1214-2

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Dead-letter jobs created and resolved: gráfico estático de valores sintéticos de created_jobs del resultado del ejemplo Measure dead-letter queue growth
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descarga los datos de ejemplo

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

  1. 1Los eventos creados y resueltos permanecen separados, por lo que el mismo cambio neto no puede ocultar cargas de trabajo operativas muy diferentes.
  2. 2El cambio neto firmado expone días en los que se acumuló trabajo no resuelto.
  3. 3La agrupación por cola mantiene claras las rutas de propiedad y escalamiento.

Casos límite que debes comprobar

  • Un reintento no es una resolución hasta que el trabajo lógico alcance un éxito terminal documentado o un resultado de descarte.
  • Los eventos del ciclo de vida reabastecidos pueden cambiar el movimiento neto histórico.
  • Realice un seguimiento del stock en cola actual por separado o calcule una suma acumulada a partir de un saldo inicial conocido.

Panel recomendado

  • Barras apiladas: created_jobs y resolved_jobs por cola
  • Tendencia: stock acumulado de mensajes fallidos
  • Tabla: trabajos más antiguos sin resolver por error_type

Guía de alerta

Alerta cuando net_queue_change sigue siendo positivo para depósitos consecutivos o el trabajo sin resolver más antiguo infringe su objetivo de respuesta.

Leer configuración de alerta

Configura los eventos que necesita esta consulta

Instrumentación y guías relacionadas.

Continuar el análisis

Ejecútalo con tus eventos

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.

Obtén una clave API