Prometheus es un conjunto de herramientas de código abierto de alerta y supervisión que creció en popularidad junto con el crecimiento de Kubernetes. Originalmente compilado en SoundCloud, Prometheus puede rastrear sus raíces en un proyecto de supervisión en Google llamado Borgmon.
Prometheus es el principal defensor de recopilar métricas de tu infraestructura y tus aplicaciones mediante un modelo basado en extracciones. Esto significa que Prometheus enviará una solicitud a tus destinos de forma periódica y, luego, las métricas recopiladas se almacenarán en una base de datos de serie temporal. En las instancias de Prometheus autoadministradas, debes proporcionar la infraestructura para recopilar, almacenar y consultar las métricas. En las versiones administradas de Prometheus, un proveedor proporciona toda la infraestructura y un Acuerdo de Nivel de Servicio (ANS) para el tiempo de actividad del servicio.
Prometheus proporciona un lenguaje de consulta llamado PromQL para consultar los datos de tus series temporales. Hay muchos proyectos que aprovechan PromQL, incluidos Grafana y Alertmanager, para ayudar con las tareas analíticas y operativas, como la visualización de datos, la creación de alertas y el escalamiento de tu infraestructura de supervisión.
Prometheus se usa para recopilar métricas de tu infraestructura y aplicaciones. Estas métricas se pueden usar para hacer un seguimiento del estado de tus sistemas, identificar problemas potenciales y solucionar problemas.
Estos son algunos de los beneficios específicos de usar Prometheus:
Prometheus usa un modelo de extracción para recopilar métricas, lo que significa que el servidor de Prometheus sondea los sistemas o aplicaciones que supervisa para las métricas. Esto contrasta con el modelo push, que usan muchos otros sistemas de supervisión, en el que modificas el código de la aplicación para enviar métricas al servidor de manera periódica.
El modelo de extracción no requiere que los sistemas o aplicaciones que se supervisan conozcan el servidor de Prometheus, por lo que se puede agregar a un sistema de supervisión sin realizar cambios en el código de la aplicación. El modelo de extracción solo recopila métricas cuando son necesarias, por lo que Prometheus no desperdicia recursos mediante la recopilación de métricas que no se usan.
Además, Prometheus puede descubrir automáticamente fuentes de datos por los siguientes medios:
Una vez que Prometheus haya descubierto un recurso, periódicamente lo recopilará para obtener métricas. Luego, las métricas se almacenan en la base de datos de Prometheus, en la que se pueden consultar y visualizar.
PromQL es un lenguaje de consulta potente y flexible para las métricas que recopila Prometheus que se puede usar en la creación de gráficos, tablas y alertas ad hoc.
PromQL usa un lenguaje de consultas funcional que le permite al usuario seleccionar y agregar datos de series temporales en tiempo real. El resultado de una expresión puede mostrarse como un gráfico, ser visto como datos tabulares en el navegador de expresiones de Prometheus o ser consumidos por sistemas externos a través de la API de HTTP.
Estos son algunos de los elementos que pueden usar Prometheus y PromQL:
Estos son algunos ejemplos de consultas de PromQL:
Si quieres obtener el uso de CPU promedio por segundo para una aplicación específica, puedes usar la siguiente consulta:
Para obtener la cantidad de solicitudes que se realizaron a un extremo específico, puedes usar la siguiente consulta:
Para obtener la cantidad total de errores que se mostraron de un extremo específico, puedes usar la siguiente consulta: