stringtranslate.com

Prometeo (software)

Prometheus es una aplicación de software libre que se utiliza para la monitorización y alerta de eventos . [2] Registra métricas en una base de datos de series temporales (lo que permite una alta dimensionalidad ) construida utilizando un modelo de extracción HTTP , con consultas flexibles y alertas en tiempo real. [3] [4] El proyecto está escrito en Go y tiene licencia Apache 2, con el código fuente disponible en GitHub , [5] y es un proyecto graduado de la Cloud Native Computing Foundation , junto con Kubernetes y Envoy . [6]

Historia

Prometheus se desarrolló en SoundCloud a partir de 2012, [7] cuando la empresa descubrió que sus métricas y herramientas de monitorización existentes (utilizando StatsD y Graphite ) eran insuficientes para sus necesidades. En concreto, identificaron necesidades que Prometheus estaba diseñado para satisfacer, incluyendo un modelo de datos multidimensional, simplicidad operativa, recopilación de datos escalable y un potente lenguaje de consulta, todo en una única herramienta. [8] El proyecto fue de código abierto desde el principio y empezó a ser utilizado también por los usuarios de Boxever y Docker , a pesar de no haber sido anunciado explícitamente. [8] [9] Prometheus se inspiró en la herramienta de monitorización Borgmon utilizada en Google. [10] [11]

En 2013, Prometheus se introdujo para la monitorización de la producción en SoundCloud. [8] El anuncio público oficial se realizó en enero de 2015. [8]

En mayo de 2016, la Cloud Native Computing Foundation aceptó a Prometheus como su segundo proyecto incubado, después de Kubernetes . La publicación del blog que lo anunció afirmó que la herramienta estaba en uso en muchas empresas, incluidas DigitalOcean , Ericsson , CoreOS , Weaveworks, Red Hat y Google . [12]

Prometheus 1.0 se lanzó en julio de 2016. [13] Se lanzaron versiones posteriores durante 2016 y 2017, lo que llevó a Prometheus 2.0 en noviembre de 2017. [14]

En agosto de 2018, la Cloud Native Computing Foundation anunció que el proyecto Prometheus había finalizado. [6]

Se han celebrado diversas conferencias centradas en Prometeo.

Arquitectura

Una plataforma de monitoreo típica con Prometheus se compone de múltiples herramientas: [ cita requerida ]

Formato de almacenamiento de datos

Los datos de Prometheus se almacenan en forma de métricas, y cada métrica tiene un nombre que se utiliza para hacer referencia a ella y realizar consultas. Cada métrica se puede desglosar mediante una cantidad arbitraria de pares clave=valor (etiquetas). Las etiquetas pueden incluir información sobre la fuente de datos (de qué servidor provienen los datos) y otra información de desglose específica de la aplicación, como el código de estado HTTP (para métricas relacionadas con respuestas HTTP), el método de consulta (GET versus POST), el punto final, etc. La capacidad de especificar una lista arbitraria de etiquetas y realizar consultas basadas en ellas en tiempo real es la razón por la que el modelo de datos de Prometheus se denomina multidimensional. [16] [8] [9]

Prometheus almacena datos localmente en el disco, lo que ayuda a un rápido almacenamiento de datos y consultas rápidas. [8] Existe la capacidad de almacenar métricas en almacenamiento remoto. [17]

Recopilación de datos

Prometheus recopila datos en forma de series temporales . Las series temporales se construyen a través de un modelo de extracción: el servidor Prometheus consulta una lista de fuentes de datos (a veces llamadas exportadores) a una frecuencia de sondeo específica. Cada una de las fuentes de datos proporciona los valores actuales de las métricas para esa fuente de datos en el punto final consultado por Prometheus. Luego, el servidor Prometheus agrega datos de todas las fuentes de datos. [8] Prometheus tiene una serie de mecanismos para descubrir automáticamente los recursos que se deben usar como fuentes de datos. [18]

PromQL

Prometheus ofrece su propio lenguaje de consulta PromQL (Prometheus Query Language) que permite a los usuarios seleccionar y agregar datos. PromQL está específicamente ajustado para trabajar en convención con una base de datos de series temporales y por lo tanto proporciona funcionalidades de consulta relacionadas con el tiempo. Algunos ejemplos incluyen la función rate(), el vector instantáneo y el vector de rango que pueden proporcionar muchas muestras para cada serie temporal consultada. [19] Prometheus tiene cuatro tipos de métricas claramente definidos alrededor de los cuales giran los componentes de PromQL . Los cuatro tipos son: [20]

Alertas y monitoreo

La configuración de las alertas se puede especificar en Prometheus, que especifica una condición que debe mantenerse durante una duración específica para que se active una alerta. Cuando se activan las alertas, se reenvían al servicio Alertmanager. Alertmanager puede incluir lógica para silenciar las alertas y también para reenviarlas al correo electrónico, Slack o servicios de notificación como PagerDuty . [21] Algunos otros sistemas de mensajería como Microsoft Teams [22] podrían configurarse utilizando el receptor de webhook de Alertmanager como un mecanismo para integraciones externas. [23] También se pueden utilizar las alertas de Prometheus para recibir alertas directamente en dispositivos Android incluso sin el requisito de ninguna configuración de destino en Alert Manager. [24]

Paneles de control

Prometheus no está pensado como un panel completo. Aunque se puede utilizar para graficar consultas específicas, no es un panel completo y necesita conectarse con Grafana para generar paneles; esto se ha citado como una desventaja debido a la complejidad adicional de configuración. [25]

Interoperabilidad

Prometheus favorece la monitorización de caja blanca. Se anima a las aplicaciones a publicar (exportar) métricas internas que Prometheus recopilará periódicamente. [26] Hay algunos exportadores y agentes para varias aplicaciones que proporcionan métricas. [27] Prometheus admite algunos protocolos de monitorización y administración para permitir la interoperabilidad para la transición: Graphite , StatsD, SNMP , JMX y CollectD.

Prometheus se centra en la disponibilidad de la plataforma y las operaciones básicas. [28] Las métricas suelen almacenarse durante unas semanas. Para el almacenamiento a largo plazo, las métricas se pueden transmitir a un almacenamiento remoto. [17]

Estandarización en OpenMetrics

Existe un esfuerzo por promover el formato de exposición de Prometheus en un estándar conocido como OpenMetrics. [29] Algunos productos adoptaron el formato: la suite TICK de InfluxData, [30] InfluxDB , Google Cloud Platform , [31] y DataDog. [32]

Uso

Prometheus se utilizó por primera vez internamente en SoundCloud, donde se desarrolló, para monitorear sus sistemas. [8] La Cloud Native Computing Foundation tiene varios estudios de casos de otras empresas que utilizan Prometheus. Entre ellas se incluyen el servicio de alojamiento digital DigitalOcean , [33] el festival digital DreamHack , [34] y el servicio de migración de correo electrónico y contactos ShuttleCloud. [35] Por otra parte, Pandora Radio ha mencionado el uso de Prometheus para monitorear su flujo de datos. [36]

GitLab proporciona una guía de integración de Prometheus para exportar métricas de GitLab a Prometheus [37] y está activada de forma predeterminada desde la versión 9.0 [38]

Véase también

Referencias

  1. ^ Último lanzamiento en Github
  2. ^ "Descripción general". prometheus.io .
  3. ^ James Turnbull (12 de junio de 2018). Monitoreo con Prometheus. Turnbull Press. ISBN 978-0-9888202-8-9.
  4. ^ "Prometheus: de las métricas a la información. Potencie sus métricas y alertas con una solución líder de monitoreo de código abierto" . Consultado el 26 de diciembre de 2018 .
  5. ^ "Prometeo". GitHub . Consultado el 26 de diciembre de 2018 .
  6. ^ ab Evans, Kristen (9 de agosto de 2018). "Cloud Native Computing Foundation Announces Prometheus Graduation" (La Fundación de Computación Nativa en la Nube anuncia la graduación de Prometheus) . Consultado el 26 de diciembre de 2018 .
  7. ^ Brian Brazil (9 de julio de 2018). Prometheus: Up & Running: Infrastructure and Application Performance Monitoring [Prometeo: en funcionamiento: supervisión del rendimiento de aplicaciones e infraestructura]. O'Reilly Media. pág. 3. ISBN 978-1-4920-3409-4.
  8. ^ abcdefgh Volz, Julio; Rabenstein, Björn (26 de enero de 2015). "Prometheus: Monitoreo en SoundCloud". Nube de sonido .
  9. ^ ab «Monitorizar contenedores Docker con Prometheus». 5π Consulting. 26 de enero de 2015. Archivado desde el original el 3 de enero de 2019. Consultado el 26 de diciembre de 2018 .
  10. ^ Murphy, Niall; Beyer, Betsy; Jones, Chris; Petoff, Jennifer (2016). Ingeniería de confiabilidad del sitio: cómo Google ejecuta los sistemas de producción. O'Reilly Media. ISBN 978-1491929124Aunque Borgmon sigue siendo una función interna de Google, la idea de tratar los datos de series temporales como una fuente de datos para generar alertas ahora es accesible para todos a través de herramientas de código abierto como Prometheus...
  11. ^ Volz, Julius (4 de septiembre de 2017). "PromCon 2017: resumen de la conferencia" – vía YouTube. Me uní a SoundCloud en 2012, procedente de Google... todavía no teníamos ninguna herramienta de monitoreo que funcionara con este tipo de entorno dinámico. Extrañábamos un poco la forma en que Google realizaba el monitoreo para su propio programador de clúster interno y eso nos inspiró mucho y finalmente decidimos crear nuestra propia solución de código abierto.
  12. ^ "Cloud Native Computing Foundation acepta Prometheus como segundo proyecto alojado". Cloud Native Computing Foundation . 9 de mayo de 2016. Consultado el 26 de diciembre de 2018 .
  13. ^ "Prometheus 1.0 ya está aquí". Fundación para la Computación Nativa en la Nube . 18 de julio de 2016. Consultado el 26 de diciembre de 2018 .
  14. ^ "Nuevas características de Prometheus 2.0.0". Robust Perception. 8 de noviembre de 2017. Consultado el 26 de diciembre de 2018 .
  15. ^ "Alertmanager". GitHub . 17 de mayo de 2022.
  16. ^ "Modelo de datos". Prometheus . Consultado el 26 de diciembre de 2018 .
  17. ^ ab "Integraciones - Prometheus". prometheus.io .
  18. ^ "Prometheus: recopila métricas, proporciona alertas y gráficos en la interfaz web". 18 de marzo de 2017. Consultado el 26 de diciembre de 2018 .
  19. ^ "Consultando a Prometeo" . Consultado el 4 de noviembre de 2019 .
  20. ^ "Tipos de métricas". prometheus.io . Consultado el 29 de junio de 2024 .
  21. ^ Dubey, Abhishek (25 de marzo de 2018). «Integración de AlertManager con Prometheus» . Consultado el 26 de diciembre de 2018 .
  22. ^ Danuka, Praneeth (8 de marzo de 2020). "Alertas para aplicaciones nativas de la nube con Prometheus" . Consultado el 18 de octubre de 2020 .
  23. ^ "Integraciones | Prometeo".
  24. ^ "Alertas de Prometeo - Aplicaciones en Google Play".
  25. ^ Ryckbosch, Frederick (28 de julio de 2017). «Monitoreo de Prometheus: pros y contras» . Consultado el 26 de diciembre de 2018 .
  26. ^ Prometeo. "Instrumentación - Prometeo". prometheus.io .
  27. ^ "Exportadores". prometheus.io .
  28. ^ Prometeo. "Prometeo: sistema de monitoreo y base de datos de series temporales". prometheus.io .
  29. ^ "OpenMetrics". GitHub . 13 de noviembre de 2018.
  30. ^ "Telegraf de InfluxData". GitHub . 2018-12-25.
  31. ^ "Anuncio de Stackdriver Kubernetes Monitoring".
  32. ^ "Cuartel General de DataDog".
  33. ^ Evans, Kristen (28 de febrero de 2017). "Perfil de usuario de Prometheus: cómo DigitalOcean utiliza Prometheus". Cloud Native Computing Foundation . Consultado el 26 de diciembre de 2018 .
  34. ^ Evans, Kristen (24 de agosto de 2016). «Prometheus User Profile: Monitoring the World's Largest Digital Festival – DreamHack». Fundación para la Computación Nativa en la Nube . Consultado el 26 de diciembre de 2018 .
  35. ^ Evans, Kirsten (17 de mayo de 2017). "Perfil de usuario de Prometheus: ShuttleCloud explica por qué Prometheus es bueno para su pequeña empresa emergente". Cloud Native Computing Foundation . Consultado el 26 de diciembre de 2018 .
  36. ^ Haidrey, Ace (15 de marzo de 2018). "Apache Airflow at Pandora". Ingeniería en Pandora . Consultado el 26 de diciembre de 2018 .
  37. ^ "Métricas de GitLab Prometheus" . Consultado el 26 de diciembre de 2018 .
  38. ^ "GitLab 9.0 lanzado con subgrupos y paneles de implementación". GitLab. 22 de marzo de 2017.

Lectura adicional

Enlaces externos