Prometheus: Introducción a la Monitorización de Métricas

Última actualización: 26/08/2021

En esta entrada vas a aprender qué es Prometheus, y cómo puedes usar esta herramienta de monitorización y alertas para supervisar tus sistemas y aplicaciones de una forma profesional. No te lo pierdas.

Prometheus Qué es

¿Qué es Prometheus?

Prometheus es un software especializado como sistema de monitorización y alertas escrito en el lenguaje de programación Go. Todos los datos y métricas se almacenan en la base de datos como series temporales (junto al instante de tiempo en el que el valor se ha registrado). También es posible añadir etiquetas de tipo clave-valor junto a estas métricas.

Las métricas que almacena Prometheus pueden ser de cualquier tipo, y dependerán de la naturaleza de la aplicación o del sistema que se quiera monitorizar. Por ejemplo, puede ser el uso de CPU o de memoria, número de conexiones, número de peticiones o cantidad de sesiones activas. Todas las mediciones y métricas recogidas ayudarán a diagnosticar errores o problemas de servicio en los sistemas y aplicaciones que se monitorizan.

Arquitectura

Prometheus tiene 3 componentes principales.

  • Servidor: Almacena los datos de las métricas.
  • Librería Cliente: Se usa para calcular y exponer las métricas al cliente.
  • Gestor de alertas: Genera alertas basadas en reglas.

Para monitorizar una aplicación deberemos configurar con código la librería de cliente de forma que exponga la métrica que queremos registrar. Ahora que la aplicación expone nuestra métrica, ejecutaremos el servidor de Prometheus y lo configuraremos para extraerla de la aplicación con unos intervalos de tiempo establecidos.

Arquitectura Prometheus
Arquitectura y componentes de Prometheus

También dispone de numerosos exporters para diferentes sistemas como bases de datos relacionales y no relacionales, sistemas de mensajería, sistemas de almacenamiento y aplicaciones. Puedes consultar el listado completo de exporters aquí.

Métricas en Prometheus

El tipo de métrica contador es un valor que solo se puede incrementar o bien resetear. Se puede usar para contar el número de peticiones o de errores en una aplicación, que son métricas que nunca se reducen.

Gauge o medidor es un valor numérico que puede incrementarse o decrementar. Un ejemplo puede ser el número de servidores en un sistema distribuido.

El histograma representa los valores en agrupaciones predefinidas y acumuladas en el tiempo. Por ejemplo, se puede usar un histograma para medir los tiempos de respuesta de nuestra aplicación en los intervalos de tiempo establecidos para cada petición de un cliente.

Prometheus y Grafana

Grafana es el componente que nos permitirá crear dashboards para comprender lo que está pasando en nuestro sistema monitorizado. Se integra perfectamente con el software de Prometheus que, aunque ya nos proporciona estos gráficos en su propia interfaz gráfica, están pensados como un mecanismo de test o debug.

Cómo Usar Prometheus

Puedes descargar la versión compilada para tu sistema operativo desde la página oficial de descargas.

Una vez descargado, lo descomprimimos con el comando de linux tar – xvzf.

Antes de ejecutarlo, podemos ver el fichero de configuración prometheus.yml:

# la configuración global
global:
  scrape_interval: 15s

# Una configuración que contiene solamente un endpoint para extraer métricas
# Aquí se configura como punto de extracción el propio Prometheus
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ["localhost:9090"]

En esta configuración básica de pruebas, hemos establecido el intervalo de extracción en 15 segundos. También hemos configurado un endpoint para extraer métricas que se corresponde con el mismo Prometheus, que expone sus métricas en el puerto 9090.

Ahora, podemos ejecutarlo desde su directorio con el siguiente comando, al que le especificamos el fichero de configuración que acabamos de escribir:

./prometheus --config.file=prometheus.yml

Para acceder a la interfaz web en la que podremos realizar consultas y ver las gráficas entraremos en cualquier navegador y escribiremos:

http://localhost:9090/
Interfaz Gráfica Prometheus

Si navegamos a Status -> Targets podemos ver que tenemos un endpoint configurado hacia el propio Prometheus, la duración del último escaneado y su frecuencia. Si existiera algún error también podríamos ver aquí el mensaje.

Interfaz Gráfica Prometheus Targets

Siguientes Pasos y Formación

A continuación, te recomiendo dos cursos online para explorar y aprender a usar Prometheus en profundidad disponibles en la plataforma Udemy:

Curso de Monitorización y Alertas

Monitorización y Alertas con Prometheus

Aprende a monitorizar tus aplicaciones e infraestructura desde cero con este curso de devops. Te enseñará a instalar y configurar Prometheus en un entorno profesional, visualizar datos en Grafana y configurar alertas.

Curso práctico completo de Monitorización y Alertas

Prometheus | Curso práctico completo de Monitorización y Alertas

Este curso contiene más de 10 horas de vídeo y te permitirá aprender Prometheus y Grafana a un nivel avanzado con ejemplos prácticos. Es un buen complemento al curso anterior que incluye ejemplos en cloud y diferentes integraciones.


A continuación, el vídeo-resumen. ¡No te lo pierdas!


Deja una respuesta