Prometheus 🢃2

Prometheus es un sistema open source que permite almacenar métricas y generar alertas. Las métricas son almacenadas en una base de datos basada en tiempos. Prometheus tiene una estructura jerárquica. Es posible tener distintas instancias de Prometheus, donde cada uno este obteniendo sus propias métricas y las este compartiendo con un “aggregator” como puede ser {{Grafana}}.

Prometheus es “pull based”, eso quiere decir que se conecta a un servicio (que se desea monitorear) y le pide las métricas. Esto le permite, entre otras cosas, saber cuando un servicio / aplicación no esta respondiendo y de esta manera generar un alerta.

Ser pull based tiene sus pro y sus contras como todo. Por un lado cuando configuramos un sistema pull based, nos obliga a saber el estado “actual” de nuestro ambiente, esto quiere decir que no vamos a poder configurar algo que no este “funcionando”, porque en caso de que este caido o no este respondiendo, directamente no vamos a lograr obtener metricas. En comparación en un sistema “push based”, no vamos a poder saber si no estamos recibiendo métricas de una aplicación por que dejo de funcionar o por que directamente lo desenchufaron. Otra ventaja es que nunca vamos a recibir una cantidad de mensajes en exceso de una aplicación que este mal configurada o que mande mucha información de manear continua.

Lo importante es separar que Prometheus cumple dos roles, por un lado el tema de las métricas y por otro lado el tema de las alertas.

Prometheus trae un dashboard para poder visualizar las métricas que esta importando, esto sirve mucho para debugear si las configuraciones están bien.

Alertmanager

Alertmanager🡭 es un servicio que se encarga de recibir alertas de distintos clientes (comunmente Prometheus), hace filtrado, de-duplicación y se encarga de mandarlas a los servicios de notificaciones que tengamos configurado (puede ser email, telegram, discord, etc).

Alertmanager esta configurado de manera tal que va a re intentar enviar una notificación hasta que el servicio de notificación le devuelva un código 2XX. De esta forma podemos asegurarnos de que una notificación no se va a perder en el camino. Es común que para tener una capa mas de seguridad de que vamos a recibir las notificaciones, podemos agregar un alerta de que se estan juntando muchas notificaciones y que sea transmitida por otro servicio de notificación.

Resources