Prometheus es un conjunto de herramientas de código abierto para alertas y monitorización que ha ido ganando popularidad a la par que Kubernetes. Prometheus, creado originalmente en SoundCloud, puede rastrear sus raíces hasta un proyecto de monitorización de Google llamado Borgmon.
Prometheus es el principal defensor de recopilar métricas de tus aplicaciones e infraestructura mediante un modelo basado en extracción. Esto significa que Prometheus enviará periódicamente una solicitud a tus objetivos y las métricas recopiladas se almacenarán en una base de datos de serie temporal. En las instancias de Prometheus autogestionadas, proporcionas la infraestructura para recoger, almacenar y consultar las métricas. En las versiones gestionadas de Prometheus, los proveedores proporcionan toda la infraestructura y un acuerdo de nivel de servicio para el tiempo de funcionamiento del servicio.
Prometheus proporciona un lenguaje de consulta denominado PromQL para consultar datos de series temporales. Hay muchos proyectos que utilizan PromQL, como Grafana y Alertmanager, para ayudarte con tareas analíticas y operativas, como visualizar datos, crear alertas y escalar tu infraestructura de monitorización.
Prometheus se usa para recoger métricas de tus aplicaciones e infraestructura. Estas métricas sirven para hacer un seguimiento del estado de tus sistemas, identificar posibles problemas y solucionarlos.
Estas son algunas de las ventajas específicas de usar Prometheus:
Prometheus utiliza un modelo de extracción para recopilar métricas, lo que significa que el servidor de Prometheus sondea los sistemas o aplicaciones que monitoriza para detectar métricas. Esto contrasta con el modelo push, que se usa en muchos otros sistemas de monitorización, en el que se modifica el código de aplicación para enviar métricas al servidor periódicamente.
El modelo de extracción no requiere que los sistemas o las aplicaciones que se están monitorizando conozcan el servidor de Prometheus, por lo que se puede añadir a un sistema de supervisión sin hacer cambios en el código de aplicación. El modelo de extracción solo recoge las métricas cuando son necesarias, por lo que Prometheus no desperdicia recursos recogiendo métricas que no se están usando.
Además, Prometheus puede descubrir fuentes de datos automáticamente de las siguientes formas:
Una vez que Prometheus haya descubierto un recurso, lo recogerá periódicamente para obtener métricas. Después, las métricas se almacenan en la base de datos de Prometheus, donde se pueden consultar y visualizar.
PromQL es un lenguaje de consulta potente y flexible para las métricas recopiladas por Prometheus que se puede utilizar para crear gráficos, tablas y alertas ad hoc.
PromQL utiliza un lenguaje de consultas funcional que permite al usuario seleccionar y agregar datos de series temporales en tiempo real. El resultado de una expresión se puede mostrar en un gráfico, se puede ver como datos tabulares en el navegador de expresiones de Prometheus o se pueden consumir sistemas externos a través de la API HTTP.
Estas son algunas de las aplicaciones para las que se pueden usar Prometheus y PromQL:
Estos son algunos ejemplos de consultas PromQL:
Para obtener el uso medio de la CPU por segundo de una aplicación concreta, puedes usar la siguiente consulta:
Para obtener el número de solicitudes que se han realizado a un punto final específico, puedes utilizar la siguiente consulta:
Para ver el número total de errores que se han devuelto un punto final específico, puedes usar la siguiente consulta: