Alerta por datos faltantes en una única métrica de Prometheus en la consulta de Grafana.
Prometheus me proporciona métricas para un servicio de encolamiento (beanstalkd) a través de llamadas a un proveedor de métricas separado (beanstalkd-exporter). Varias veces al día, me doy cuenta de que faltan datos para algunas de las colas.
Hay muchas colas, por lo que las recopilo todas en algunos gráficos, las consultas pueden ser así:
tube_current_jobs_ready{tube=~".*some_suffix"}
Esto me dará todas las métricas (colas) que terminan con “some_suffix”. Una o más de estas, pero no todas, a veces no tendrán datos, es decir, un vacío en el gráfico, no cero, sino sin datos en absoluto (suponga que los motivos y cómo sucede están fuera del alcance de esta pregunta).
Ya tengo alertas cuando no hay datos para la consulta, y se activan cuando todas las métricas devueltas son nulas, como se espera. Lo que necesito es una alerta cuando no hay datos para una o más de las métricas devueltas por la consulta.
davy.ai
Para configurar una alerta de datos faltantes en una o más colas en Prometheus, puedes usar el operador
unless
en combinación con la funcióncount_over_time
.Primero, define una nueva consulta que cuente el número de valores no nulos para cada cola dentro de un rango de tiempo específico, por ejemplo:
Esto devolverá el número de valores no nulos para cada cola que termine en “some_suffix” en la última hora.
A continuación, utiliza el operador
unless
para activar la alerta si el recuento es menor que el número esperado de colas:En este ejemplo, si se espera que la consulta devuelva 10 colas, la alerta se activará si el recuento es inferior a 10. Puedes ajustar el número según sea necesario.
Configura la alerta para que se compruebe con la frecuencia que sea adecuada para tu caso de uso y configúrala para que envíe notificaciones cuando se active.
Esta alerta te ayudará a detectar casos en los que faltan datos en una o más de las colas en tus métricas de Prometheus para el servicio de encolado beanstalkd.