stringtranslate.com

Прометей (программное обеспечение)

Prometheusбесплатное программное приложение, используемое для мониторинга событий и оповещения . [2] Он записывает метрики в базу данных временных рядов (с высокой размерностью ), построенную с использованием модели извлечения HTTP , с гибкими запросами и оповещениями в реальном времени. [3] [4] Проект написан на Go и лицензируется по лицензии Apache 2, исходный код доступен на GitHub , [5] и является дипломным проектом Cloud Native Computing Foundation вместе с Kubernetes и Envoy . [6]

История

Prometheus разрабатывался в SoundCloud начиная с 2012 года [7] , когда компания обнаружила, что существующие метрики и инструменты мониторинга (с использованием StatsD и Graphite ) недостаточны для их нужд. В частности, они определили потребности, для удовлетворения которых был создан Prometheus, включая: многомерную модель данных, простоту эксплуатации, масштабируемый сбор данных и мощный язык запросов — и все это в одном инструменте. [8] Проект с самого начала был открытым исходным кодом и начал использоваться пользователями Boxever и Docker , несмотря на то, что об этом не было объявлено явно. [8] [9] На создание Prometheus вдохновил инструмент мониторинга Borgmon, используемый в Google. [10] [11]

К 2013 году Prometheus был представлен для мониторинга производства в SoundCloud. [8] Официальное публичное заявление было сделано в январе 2015 года. [8]

В мае 2016 года Cloud Native Computing Foundation принял Prometheus в качестве своего второго инкубируемого проекта после Kubernetes . В сообщении блога, в котором сообщалось об этом, говорилось, что этот инструмент использовался во многих компаниях, включая DigitalOcean , Ericsson , CoreOS , Weaveworks, Red Hat и Google . [12]

Prometheus 1.0 был выпущен в июле 2016 года. [13] Последующие версии были выпущены в 2016 и 2017 годах, что привело к выпуску Prometheus 2.0 в ноябре 2017 года. [14]

В августе 2018 года Фонд Cloud Native Computing Foundation объявил о завершении проекта Prometheus. [6]

Было проведено множество конференций, посвященных Прометею.

Архитектура

Типичная платформа мониторинга с Prometheus состоит из нескольких инструментов :

Формат хранения данных

Данные Prometheus хранятся в виде метрик, причем каждая метрика имеет имя, которое используется для ссылки и запроса. Каждую метрику можно детализировать с помощью произвольного количества пар ключ=значение (меток). Метки могут включать информацию об источнике данных (с какого сервера поступают данные) и другую информацию о разбивке приложения, такую ​​как код состояния HTTP (для показателей, связанных с ответами HTTP), метод запроса (GET или POST), конечную точку и т. д. Возможность задавать произвольный список меток и выполнять запросы на его основе в режиме реального времени — вот почему модель данных Prometheus называется многомерной. [16] [8] [9]

Prometheus хранит данные локально на диске, что способствует быстрому хранению данных и быстрому выполнению запросов. [8] Есть возможность хранить метрики в удаленном хранилище. [17]

Сбор данных

Prometheus собирает данные в виде временных рядов . Временные ряды строятся с помощью модели извлечения: сервер Prometheus запрашивает список источников данных (иногда называемых экспортерами) с определенной частотой опроса. Каждый из источников данных предоставляет текущие значения метрик для этого источника данных в конечной точке, запрашиваемой Prometheus. Затем сервер Prometheus объединяет данные из источников данных. [8] В Prometheus имеется ряд механизмов для автоматического обнаружения ресурсов, которые следует использовать в качестве источников данных. [18]

ПромQL

Prometheus предоставляет собственный язык запросов PromQL (язык запросов Prometheus), который позволяет пользователям выбирать и агрегировать данные. PromQL специально настроен для работы с базой данных временных рядов и, следовательно, предоставляет функции запросов, связанных со временем. Примеры включают функциюrate(), мгновенный вектор и вектор диапазона, которые могут предоставить множество выборок для каждого запрошенного временного ряда. [19] В Prometheus есть четыре четко определенных типа метрик, вокруг которых вращаются компоненты PromQL. Четыре типа

Оповещения и мониторинг

Конфигурацию оповещений можно указать в Prometheus, где указывается условие, которое необходимо поддерживать в течение определенного времени, чтобы оповещение сработало. При срабатывании оповещений они пересылаются в службу Alertmanager. Alertmanager может включать логику для отключения оповещений, а также для пересылки их по электронной почте, Slack или в службы уведомлений, такие как PagerDuty . [20] Некоторые другие системы обмена сообщениями, такие как Microsoft Teams [21], можно настроить с использованием приемника Alertmanager Webhook в качестве механизма внешней интеграции. [22] Также Prometheus Alerts можно использовать для получения оповещений непосредственно на устройствах Android, даже без необходимости настройки каких-либо целей в Alert Manager. [23]

Панели мониторинга

Прометей не задуман как полноценная приборная панель. Хотя его можно использовать для построения графиков конкретных запросов, он не является полноценной информационной панелью, и для создания информационных панелей его необходимо подключить к Grafana ; это было названо недостатком из-за дополнительной сложности установки. [24]

Совместимость

Prometheus предпочитает мониторинг «белого ящика». Приложениям рекомендуется публиковать (экспортировать) внутренние метрики, которые Prometheus будет периодически собирать. [25] Некоторые экспортеры и агенты для различных приложений могут предоставить показатели. [26] Prometheus поддерживает некоторые протоколы мониторинга и администрирования, обеспечивающие совместимость при переходе: Graphite , StatsD, SNMP , JMX и CollectD.

Прометей фокусируется на доступности платформы и основных операциях. [27] Метрики обычно хранятся в течение нескольких недель. Для долгосрочного хранения метрики можно передавать в удаленное хранилище. [17]

Стандартизация в OpenMetrics

Предпринимаются попытки превратить формат представления Prometheus в стандарт, известный как OpenMetrics. [28] Некоторые продукты приняли этот формат: пакет TICK от InfluxData, [29] InfluxDB , Google Cloud Platform , [30] и DataDog. [31]

Применение

Впервые Prometheus использовался в SoundCloud, где он был разработан, для мониторинга своих систем. [8] Фонд Cloud Native Computing Foundation располагает рядом тематических исследований других компаний, использующих Prometheus. К ним относятся служба цифрового хостинга DigitalOcean , [32] цифровой фестиваль DreamHack , [33] и служба миграции электронной почты и контактов ShuttleCloud. [34] Отдельно Pandora Radio упомянуло об использовании Prometheus для мониторинга своего конвейера данных. [35]

GitLab предоставляет руководство по интеграции Prometheus для экспорта метрик GitLab в Prometheus [36] и оно активировано по умолчанию, начиная с версии 9.0 [37]

Смотрите также

Рекомендации

  1. ^ Последний выпуск на Github.
  2. ^ «Обзор». prometheus.io .
  3. Джеймс Тернбулл (12 июня 2018 г.). Мониторинг с помощью Прометея. Тернбулл Пресс. ISBN 978-0-9888202-8-9.
  4. ^ «Прометей: от показателей к аналитике. Усильте свои показатели и оповещения с помощью ведущего решения для мониторинга с открытым исходным кодом» . Проверено 26 декабря 2018 г.
  5. ^ "Прометей". Гитхаб . Проверено 26 декабря 2018 г.
  6. ↑ Аб Эванс, Кристен (9 августа 2018 г.). «Фонд Cloud Native Computing объявляет об окончании Прометея» . Проверено 26 декабря 2018 г.
  7. Брайан Бразилия (9 июля 2018 г.). Prometheus: Up & Running: мониторинг производительности инфраструктуры и приложений. О'Рейли Медиа. п. 3. ISBN 978-1-4920-3409-4.
  8. ^ abcdefgh Фольц, Юлиус; Рабенштейн, Бьёрн (26 января 2015 г.). «Прометей: мониторинг в SoundCloud». Саундклауд .
  9. ^ ab «Мониторинг Docker-контейнеров с помощью Prometheus». 5π Консалтинг. 26 января 2015 года. Архивировано из оригинала 3 января 2019 года . Проверено 26 декабря 2018 г.
  10. ^ Мерфи, Найл; Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер (2016). Проектирование надежности сайта: как Google управляет производственными системами. О'Рейли Медиа. ISBN 978-1491929124. Несмотря на то, что Borgmon остается внутренней частью Google, идея рассматривать данные временных рядов как источник данных для генерации оповещений теперь доступна каждому через такие инструменты с открытым исходным кодом, как Prometheus...
  11. Волц, Юлиус (4 сентября 2017 г.). «ПромКон 2017: Итоги конференции» – через YouTube. Я присоединился к SoundCloud еще в 2012 году из Google… у нас еще не было инструментов мониторинга, которые работали бы в такой динамической среде. Нам не хватало того, как Google осуществлял мониторинг собственного внутреннего планировщика кластера, и мы были очень вдохновлены этим и, наконец, решили создать собственное решение с открытым исходным кодом.
  12. ^ «Фонд Cloud Native Computing принимает Prometheus в качестве второго размещенного проекта» . Фонд облачных вычислений . 9 мая 2016 года . Проверено 26 декабря 2018 г.
  13. ^ «Прометей 1.0 здесь» . Фонд облачных вычислений . 18 июля 2016 г. Проверено 26 декабря 2018 г.
  14. ^ «Новые функции в Prometheus 2.0.0» . Устойчивое восприятие. 8 ноября 2017 г. Проверено 26 декабря 2018 г.
  15. ^ «Менеджер оповещений». Гитхаб . 17 мая 2022 г.
  16. ^ «Модель данных». Прометей . Проверено 26 декабря 2018 г.
  17. ^ ab «Интеграции - Прометей». prometheus.io .
  18. ^ «Прометей: собирает показатели, предоставляет оповещения и отображает веб-интерфейс» . 18 марта 2017 года . Проверено 26 декабря 2018 г.
  19. ^ «Опрос Прометея» . Проверено 4 ноября 2019 г.
  20. Дубей, Абхишек (25 марта 2018 г.). «Интеграция AlertManager с Прометеем» . Проверено 26 декабря 2018 г.
  21. Данука, Пранит (8 марта 2020 г.). «Оповещение об облачных приложениях с помощью Prometheus» . Проверено 18 октября 2020 г.
  22. ^ «Интеграции | Прометей» .
  23. ^ «Оповещения Prometheus — Приложения в Google Play» .
  24. Рикбош, Фредерик (28 июля 2017 г.). «Мониторинг Прометея: плюсы и минусы» . Проверено 26 декабря 2018 г.
  25. ^ Прометей. «Приборы – Прометей». prometheus.io .
  26. ^ «Экспортеры». prometheus.io .
  27. ^ Прометей. «Прометей - Система мониторинга и база данных временных рядов». prometheus.io .
  28. ^ "ОпенМетрикс". Гитхаб . 13.11.2018.
  29. ^ "Телеграф из InfluxData" . Гитхаб . 25 декабря 2018 г.
  30. ^ «Анонсирование мониторинга Stackdriver Kubernetes» .
  31. ^ "DataDogHQ".
  32. Эванс, Кристен (28 февраля 2017 г.). «Профиль пользователя Prometheus: как DigitalOcean использует Prometheus». Фонд облачных вычислений . Проверено 26 декабря 2018 г.
  33. Эванс, Кристен (24 августа 2016 г.). «Профиль пользователя Prometheus: мониторинг крупнейшего в мире цифрового фестиваля - DreamHack». Фонд облачных вычислений . Проверено 26 декабря 2018 г.
  34. Эванс, Кирстен (17 мая 2017 г.). «Профиль пользователя Prometheus: ShuttleCloud объясняет, почему Prometheus хорош для вашего небольшого стартапа» . Фонд облачных вычислений . Проверено 26 декабря 2018 г.
  35. Хейдри, Эйс (15 марта 2018 г.). «Apache Airflow в Пандоре». Инженерное дело в Пандоре . Проверено 26 декабря 2018 г.
  36. ^ «Метрики GitLab Prometheus» . Проверено 26 декабря 2018 г.
  37. ^ «Выпущен GitLab 9.0 с подгруппами и досками развертывания» . ГитЛаб. 22 марта 2017 г.

дальнейшее чтение