¿Qué es Prometheus?

Prometheus es un sistema de monitoreo y alerta de sistemas. Fue liberado como proyecto open source por SoundCloud en 2012 y es el segundo proyecto en unirse a la Cloud Native Computing Foundation después de Kubernetes. Prometheus almacena todos los datos de métricas como series temporales, es decir, la información de las métricas se almacena junto con la marca de tiempo en la que se registró.

Interfaz gráfica de Prometheus - Lista para recibir métricas
Interfaz gráfica de Prometheus – Lista para recibir métricas

¿Qué son las métricas y por qué son tan importantes?

Las métricas en términos simples son un estándar de medición. Lo que queremos medir varía de una aplicación a otra. Para un servidor web, pueden ser los tiempos de solicitud; para una base de datos, el uso de la CPU o el número de conexiones activas, y así sucesivamente.

Las métricas juegan un papel importante en entender por qué tu aplicación está funcionando de cierta manera. Si tienes una aplicación web y alguien te dice que está funcionando lento, necesitarás información para averiguar qué está sucediendo. Por ejemplo, la aplicación podría volverse lenta cuando el número de solicitudes es alto. Si tienes la métrica del conteo de solicitudes, puedes identificar la razón y aumentar la cantidad de servidores para manejar la carga pesada. Siempre que estés definiendo las métricas para tu aplicación, debes ponerte el sombrero de detective y preguntarte qué información será importante para depurar cualquier problema que ocurra en mi aplicación.

Arquitectura básica de Prometheus

Los componentes básicos para ejecutar Prometheus son los siguientes:

  1. Servidor de Prometheus: es el servidor que recopila y almacena los datos de métricas.
  2. Objetivos a ser recopilados: por ejemplo, una aplicación instrumentada que expone sus métricas, o un exportador que expone métricas de otra aplicación.
  3. Alertmanager: se encarga de generar alertas basadas en reglas predefinidas.
basic architecture of prometheus
Arquitectura básica de Prometheus – App – Server – AlertManager