¿Qué es Prometheus?

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.  

¿Para qué se usa Prometheus?

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.

¿Cuáles son las ventajas de Prometheus?

Estas son algunas de las ventajas específicas de usar Prometheus:

  • Apertura: Prometheus es una solución de software libre, parte de la Cloud Native Computing Foundation (CNCF) y es de uso gratuito.
  • Fiabilidad: Prometheus es una solución fiable y cuenta con una sólida trayectoria en entornos de producción de algunas de las empresas más grandes del mundo.
  • Asistencia de la comunidad: Prometheus tiene una comunidad amplia y activa que ofrece asistencia, documentación y mejoras. También se integra con otras herramientas para que puedas monitorizar tus sistemas y tu infraestructura, así como visualizar tus datos.
  • Funciona genial con Kubernetes: como la solución de monitorización predeterminada de Kubernetes, la mayoría de las aplicaciones de terceros ya están equipadas con métricas de Prometheus.
  • Opera en todas partes: aunque la mayor parte de la adopción se ha producido en los despliegues de Kubernetes, Prometheus también se puede usar en máquinas virtuales y en algunos entornos sin servidor.

¿Cuáles son los componentes de Prometheus? 

  • Servidor Prometheus: el componente central del sistema de monitorización de Prometheus. Almacena datos de series temporales y expone una API HTTP para hacer consultas sobre esos datos y recibir alertas sobre ellos.
  • Exportadores Prometheus: agentes de software que recogen métricas de varios sistemas y las exponen a Prometheus.
  • Alertmanager: servicio que recibe alertas de Prometheus y las enruta a las personas o los sistemas adecuados.
  • Federación de Prometheus: una función que permite que varios servidores de Prometheus compartan datos.
  • Prometheus Pushgateway: un componente que permite que los servicios envíen métricas a Prometheus sin tener que recogerlas. Esta función sirve mejor para trabajos de corta duración.
  • Exportador de Blackbox de Prometheus: servicio que se puede usar para monitorizar la disponibilidad de endpoints HTTP, TCP y DNS.

¿Cómo recopila las métricas 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: 

  • Descubrimiento de servicios: Prometheus puede usar varios mecanismos de descubrimiento de servicios para buscar hosts que ejecuten servicios que exponen métricas. Por ejemplo, Prometheus puede usar la API de Kubernetes para descubrir pods que ejecuten exportadores de Prometheus.
  • Configuración estática: también es posible configurar Prometheus de forma estática para recoger datos de recursos específicos. Esta función resulta útil con los recursos que no son visibles por otros medios.
  • Descubrimiento de archivos: Prometheus también puede descubrir recursos buscando archivos que contengan métricas. Por ejemplo, Prometheus puede descubrir archivos generados por Collectd o Nagios.

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.

¿Cuáles son los cuatro tipos de métricas de Prometheus?

  • Los contadores realizan un seguimiento de los valores acumulativos que solo pueden aumentar. A menudo se utilizan para hacer un seguimiento de elementos como las solicitudes servidas, los errores y los bytes transferidos.
  • Los indicadores hacen un seguimiento de las relaciones de aspecto que pueden aumentar o disminuir y, por lo general, medir la frecuencia por segundo. Se suelen utilizar para hacer un seguimiento de aspectos como el uso de memoria y de CPU y el espacio en disco.
  • Los histogramas hacen un seguimiento de la distribución de los valores. A menudo se utilizan para hacer un seguimiento de aspectos como la latencia por solicitud y el tamaño de las respuestas.
  • Los resúmenes son similares a los histogramas, pero también realizan un seguimiento de los cuantiles. Esto los hace más útiles para identificar valores atípicos y comprender la distribución general de los valores.

¿Qué es PromQL?

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:

  • Monitorizar el estado de tus aplicaciones y de tu infraestructura: Prometheus recoge métricas y alertas sobre posibles problemas.
  • Identificar posibles problemas: Prometheus compara las métricas actuales con el historial de datos y alerta sobre cualquier desviación significativa.
  • Solución de problemas: Prometheus proporciona una vista detallada del estado del sistema y permite a los usuarios desglosar la información en métricas y recursos específicos para identificar la causa principal del problema.
  • Visualización de los datos: Prometheus utiliza su lenguaje de consultas PromQL para consultar sus datos de series temporales y, a continuación, muestra los resultados en varios formatos, como gráficos, tablas y alertas.
  • Creación de alertas: Prometheus utiliza su lenguaje de consultas PromQL para consultar sus datos de series temporales y, a continuación, envía notificaciones cuando los resultados cumplen determinadas condiciones
  • Visualización en herramientas de terceros: cualquier frontend que entienda la API de consulta de Prometheus, como Grafana o Kiali, puede consultar el servidor de Prometheus y mostrar datos

Ejemplos de consultas de PromQL

Estos son algunos ejemplos de consultas PromQL:

Uso medio de la CPU por segundo

Para obtener el uso medio de la CPU por segundo de una aplicación concreta, puedes usar la siguiente consulta:

consulta sobre el uso de CPU de promql por segundo

Número de solicitudes de endpoints

Para obtener el número de solicitudes que se han realizado a un punto final específico, puedes utilizar la siguiente consulta:

Consulta de promql sobre el número de solicitudes de endpoints

Número de errores de solicitud de endpoints

Para ver el número total de errores que se han devuelto un punto final específico, puedes usar la siguiente consulta:

ejemplo de consulta de errores de solicitud de endpoints promql

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Habla con un especialista del equipo de ventas de Google Cloud y explícale tu reto único al detalle.
Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Consola
Google Cloud