Ir a

¿Qué es Prometheus?

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.  

¿Para qué se usa Prometheus?

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.

¿Cuáles son los beneficios de Prometheus?

Estos son algunos de los beneficios específicos de usar Prometheus:

  • Apertura: Prometheus es de código abierto y forma parte de la Cloud Native Computing Foundation (CNCF).
  • Confiabilidad: Prometheus es confiable y tiene una trayectoria comprobada en entornos de producción en algunas de las empresas más grandes del mundo.
  • Asistencia de la comunidad: Prometheus tiene una comunidad grande y activa que proporciona asistencia, documentación y mejoras. También tiene varias integraciones con otras herramientas, lo que te permite supervisar tus sistemas y tu infraestructura y visualizar tus datos.
  • Funciona muy bien con Kubernetes: como la solución de supervisión predeterminada de facto para Kubernetes, la mayoría de las aplicaciones de terceros ya están instrumentadas para las métricas de Prometheus.
  • Funciona en todas partes: Si bien la mayor parte de la adopción ha sido en implementaciones de Kubernetes, Prometheus también se puede usar para VMs y algunos entornos sin servidores.

¿Cuáles son los componentes de Prometheus? 

  • Servidor de Prometheus: Es el componente central del sistema de supervisión de Prometheus. Almacena datos de series temporales y expone una API de HTTP para realizar consultas y alertas sobre esos datos.
  • Exportadores de Prometheus: Los agentes de software que recopilan métricas de varios sistemas y las exponen a Prometheus.
  • Alertmanager: Un servicio que recibe alertas de Prometheus y las enruta a las personas o los sistemas adecuados.
  • Federación de Prometheus: Es una función que permite que varios servidores de Prometheus compartan datos.
  • Prometheus Pushgateway: Es un componente que permite que los servicios envíen métricas a Prometheus sin tener que recopilarlos. Esta función se adapta mejor a los trabajos de corta duración.
  • Exportador de caja negra de Prometheus: Es un servicio que se puede usar para supervisar la disponibilidad de los extremos HTTP, TCP y DNS.

¿Cómo recopila Prometheus las métricas?

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: 

  • Descubrimiento de servicios: Prometheus puede usar una variedad de mecanismos de descubrimiento de servicios para encontrar hosts que ejecuten servicios que expongan métricas. Por ejemplo, Prometheus puede usar la API de Kubernetes para descubrir los Pods que ejecutan exportadores de Prometheus.
  • Configuración estática: También es posible configurar, de forma estática, Prometheus para recopilar recursos específicos. Esto es útil para los recursos que no son detectables por otros medios.
  • Descubrimiento de archivos: Prometheus también puede descubrir recursos si busca archivos que contengan métricas. Por ejemplo, Prometheus puede descubrir archivos generados por collectd o Nagios.

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.

¿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 usan para realizar un seguimiento de aspectos como solicitudes entregadas, errores y bytes transferidos.
  • Los indicadores hacen un seguimiento de las proporciones que pueden subir o bajar, la mayoría de las cuales miden la tasa por segundo. A menudo, se usan para realizar un seguimiento del uso de la memoria, de la CPU y el espacio en el disco.
  • Los histogramas hacen un seguimiento de la distribución de los valores. A menudo, se usan para realizar un seguimiento de características como la latencia de la solicitud y el tamaño de la respuesta.
  • Los resúmenes son similares a los histogramas, pero también realizan seguimientos de 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 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:

  • Supervisión del estado de la infraestructura y las aplicaciones: Prometheus recopila métricas y alertas sobre posibles problemas.
  • Identificación de posibles problemas: Prometheus compara las métricas actuales con los datos históricos y las alertas sobre cualquier desviación significativa.
  • Solución de problemas: Prometheus proporciona una vista detallada del estado del sistema y permite a los usuarios desglosar las métricas y los recursos específicos para identificar la causa raíz del problema.
  • Visualiza los datos: Prometheus usa su lenguaje de consulta PromQL para consultar sus datos de series temporales y, luego, muestra los resultados en una variedad de formatos, incluidos gráficos, tablas y alertas
  • Crea alertas: Prometheus usa su lenguaje de consulta de PromQL para consultar sus datos de series temporales y, luego, envía notificaciones cuando los resultados cumplen con determinadas condiciones
  • Visualización en herramientas de terceros: Cualquier frontend que comprenda 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 de PromQL:

Uso promedio de CPU por segundo

Si quieres obtener el uso de CPU promedio por segundo para una aplicación específica, puedes usar la siguiente consulta:

Consulta sobre el uso de CPU por segundo de PromQL

Cantidad de solicitudes de extremos

Para obtener la cantidad de solicitudes que se realizaron a un extremo específico, puedes usar la siguiente consulta:

Consulta de PromQL para la cantidad de solicitudes de extremos

Cantidad de errores de solicitudes de extremos

Para obtener la cantidad total de errores que se mostraron de un extremo específico, puedes usar la siguiente consulta:

Ejemplo de consulta de errores de solicitud de extremo de PromQL

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.
Comenzar
Habla con un especialista en ventas de Google Cloud para analizar tu desafío único en más detalle.
Comunicarse con nosotros