es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Alertas “inteligentes” de Grafana – o – Condición compuesta de objetivos no relacionados en Prometheus.

Resumen

Quiero recibir una alerta utilizando Grafana 8+ cuando un resultado específico de PromQL sea mayor que 0 y cuando otro resultado de PromQL no relacionado sea 1.

Antecedentes

Tenemos dispositivos que se encienden y apagan cada día. Quiero saber cuándo están apagados durante esta ventana de operación. Estoy utilizando “probe_success” como la consulta de PromQL para saber cuándo un dispositivo está apagado. Estoy utilizando una aplicación personalizada de Prometheus para saber cuándo los dispositivos están encendidos y apagados – ejemplo de PromQL powerStatus{job="powerMonitor", section="1", zone="2" } == bool 1

Intentos

He investigado sobre alertmanager/PromQL, pero no he encontrado una consulta que funcione cuando quiero, considerando el estado de encendido y apagado de la sección y la zona. He intentado todo lo que puedo extraer de la documentación de alertas de Grafana 8, incluso usando expresiones de condición clásica, pero parece que solo puedo encontrar una solución que depende de la evaluación de una condición clásica en otra condición clásica, lo cual no está permitido. Pensé que este sería un caso de uso común, pero no encuentro publicaciones de blogs al respecto en la web.

Corazonada

Tengo la sensación de que hay una forma idiomática de lograr esto que no estoy viendo, algo así como cuando se pasa de programación imperativa a programación declarativa y se quiere hacer un bucle a través de conjuntos de datos :). ¿Puedes ayudarme?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    Para lograr el resultado de alerta deseado, podemos utilizar Grafana 8+ y su potente función de utilizar una condición de consulta para las alertas.

    1. Crea un panel en Grafana que muestre el estado de powerStatus para cada sección y zona. Este panel debe tener la consulta powerStatus{job="powerMonitor"}.
    2. Crea otro panel en Grafana que muestre el estado de probe_success para cada sección y zona. Este panel debe tener la consulta probe_success.

    3. Crea una nueva alerta para este panel haciendo clic en el ícono de campana en la esquina superior derecha de la pantalla y seleccionando “Gestionar alertas”.

    4. En la página “Crear regla de alerta”, selecciona el panel que acabas de crear en los pasos 1 y 2.

    5. Configura las “Condiciones” a “Consulta Prometheus”.

    6. Configura la “Consulta” a la siguiente consulta PromQL:

    probe_success{job="powerMonitor"} == 0
    Y
    powerStatus{job="powerMonitor", section="1", zone="2"} == bool 1
    

    Ten en cuenta que debes ajustar los parámetros de sección y zona en la consulta de powerStatus para que coincida con tu propia configuración.

    1. Configura los ajustes de “Durante” y “Severidad” según tus preferencias.
  2. Guarda la regla de alerta.

  3. Con esta regla de alerta, recibirás una alerta cuando cualquier dispositivo esté inactivo durante su ventana de funcionamiento (probe_success{job="powerMonitor"} == 0) y el estado de energía de la sección 1 y la zona 2 esté encendido (powerStatus{job="powerMonitor", section="1", zone="2"} == bool 1).

Comments are closed.