Saltar al contenido

Grafana Alerting vs AlertManager: Una Comparación de Dos Herramientas de Monitoreo Líderes

Introducción

Las capacidades de Grafana Alerting continúan mejorando en cada nueva versión que el equipo de GrafanaLabs realiza. Especialmente con los cambios realizados en Grafana 8 y Grafana 9, se han planteado muchas preguntas sobre su uso, las capacidades soportadas y la comparación con otras alternativas.

Queremos comenzar estableciendo el contexto sobre Grafana Alerting basado en el stack habitual que desplegamos para mejorar la observabilidad de nuestras cargas de trabajo. Grafana se puede usar para cualquier carga de trabajo; hay una preferencia por algunas específicas siendo la solución más utilizada cuando hablamos de cargas de trabajo en Kubernetes.

En este tipo de despliegue, el stack que usualmente desplegamos es Grafana como la herramienta de visualización y Prometheus como el núcleo para recopilar todas las métricas, de modo que todas las responsabilidades están diferenciadas. Grafana dibuja toda la información utilizando sus excelentes capacidades de paneles, recopilando la información de Prometheus.

Grafana Alerting vs AlertManager: Una Comparación de Dos Herramientas de Monitoreo Líderes

Cuando planeamos comenzar a incluir alertas, ya que no podemos aceptar que necesitamos tener un equipo específico solo observando paneles para detectar dónde algo está fallando, necesitamos implementar una forma de enviar alertas.

Las capacidades de alerta en Grafana han estado presentes desde el principio, pero sus capacidades en las primeras etapas se han limitado a generar alertas gráficas centradas en los paneles. En lugar de eso, Prometheus actuando como el cerebro, incluye un componente llamado AlertManager que puede manejar la creación y notificación de cualquier alerta generada a partir de toda la información almacenada en Prometheus.

Las principales capacidades que Alert Manager proporciona son la definición de las alertas, agrupación de las alertas, reglas de desestimación para silenciar algunas notificaciones, y finalmente, la forma de enviar esa alerta a cualquier sistema basado en un sistema de plugins y un webhook para poder extenderlo a cualquier componente disponible.

Grafana Alerting vs AlertManager: Una Comparación de Dos Herramientas de Monitoreo Líderes

Entonces, esta es la etapa inicial, pero esto ha cambiado con las últimas versiones de Grafana en los últimos meses, como se comentó, y ahora la barrera entre ambos componentes es mucho más difusa, como vamos a ver.

¿Cuáles son las principales capacidades que Grafana Alerting ofrece hoy en día?

Grafana Alerting te permite definir reglas de alerta definiendo los criterios bajo los cuales esta alerta debería activarse. Puede tener diferentes consultas, condiciones, frecuencia de evaluación y la duración durante la cual se cumple la condición.

Esta alerta puede generarse desde cualquiera de las fuentes soportadas en Grafana, y ese es un tema muy relevante ya que no se limita a los datos de Prometheus. Con la eclosión del stack de GrafanaLabs con muchos nuevos productos como Grafana Loki y Grafana Mimir, entre otros, esto es especialmente relevante.

Una vez que cada una de las alertas se activa, puedes definir una política de notificación para decidir dónde, cuándo y cómo se enruta cada una de estas alertas. Una política de notificación también tiene un punto de contacto asociado con uno o más notificadores.

Además, puedes silenciar alertas para dejar de recibir notificaciones de una instancia de alerta específica y silenciar alertas cuando puedes definir un período en el que no se generarán o notificarán nuevas alertas.

Todo eso con poderosas capacidades de paneles utilizando todo el poder de las características de paneles de Grafana.

Grafana Alerting vs AlertManager: Una Comparación de Dos Herramientas de Monitoreo Líderes

Grafana Alerting vs Prometheus Alert Manager

Después de leer la sección anterior probablemente estés confundido porque la mayoría de las nuevas características añadidas son muy similares a las que tenemos disponibles en Prometheus AlertManager.

Entonces, en ese caso, ¿qué herramienta deberíamos usar? ¿Deberíamos reemplazar Prometheus AlertManager y comenzar a usar Grafana Alerting? ¿Deberíamos usar ambos? Como puedes imaginar, esta es una de esas preguntas que no tiene respuestas claras ya que dependerá mucho del contexto y tu escenario específico, pero permíteme darte algunas indicaciones al respecto.

  • Grafana Alerting puede ser muy poderoso si ya estás dentro del stack de Grafana. Si ya estás usando Grafana Loki (y necesitas generar alertas desde él), Grafana Mimir, o directamente Grafana cloud, probablemente Grafana Alert proporcionará un mejor ajuste para tu ecosistema.
  • Si necesitas alertas complejas definidas con consultas y cálculos complejos, Prometheus AlertManager proporcionará un ecosistema mucho más complejo y rico para generar tus alertas.
  • Si estás buscando un enfoque SaaS, Grafana Alerting también se proporciona como parte de Grafana Cloud, por lo que se puede usar sin la necesidad de ser instalado en tu ecosistema.
  • Si estás usando Grafana Alerting, necesitas considerar que el mismo componente que sirve los paneles está computando y generando las alertas, lo que requeriría capacidades adicionales de HA. Habrá una relación inevitable entre ambas características (paneles y alertas). Supongamos que eso no resuena bien contigo porque la criticidad de tu panel no es la misma que la de las alertas, o piensas que el uso de tu panel puede afectar el rendimiento de las alertas. En ese caso, Prometheus Alert Manager proporcionará un mejor enfoque ya que se ejecuta en un pod específico en aislamiento.
  • En este momento, Grafana Alerting utiliza una base de datos SQL para gestionar la duplicación entre otras características, por lo que dependiendo del número de alertas con las que necesites trabajar, podría no ser suficiente en términos de rendimiento, y el uso de la base de datos de series temporales de Prometheus puede ser una mejor opción.

Resumen

Grafana Alerting es un progreso increíble en el camino del equipo de Grafana Labs para proporcionar un stack de observabilidad de extremo a extremo con un gran ajuste en el resto del ecosistema con la opción de ejecutarlo en modo SaaS y centrarse en la facilidad de uso. Pero hay mejores opciones dependiendo de tus necesidades.