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

Прометей
Программное обеспечение Prometheus logo.svg
изначальный выпуск24 ноября 2012 г.; 8 лет назад (2012-11-24)
Стабильный выпуск
v2.22.0[1] / 15 октября 2020; 44 дней назад (2020-10-15)
Репозиторийhttps://github.com/prometheus/prometheus
Написано вИдти
Операционная системаКроссплатформенность
ТипБаза данных временных рядов
ЛицензияЛицензия Apache 2.0
Интернет сайтprometheus.io

Прометей это бесплатно программное обеспечение приложение, используемое для мониторинг событий и предупреждение.[2] Он записывает показатели в реальном времени в база данных временных рядов (с учетом высоких размерность ) построенный с использованием HTTP тянуть модель, с гибкими запросами и предупреждениями в реальном времени.[3][4] Проект написан на Идти и под лицензией Apache 2 License, с исходный код доступен на GitHub,[5] и является дипломным проектом Фонд облачных вычислений, вместе с Kubernetes и посланник.[6]

История

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

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

В мае 2016 г. Фонд облачных вычислений принял Prometheus в качестве своего второго инкубируемого проекта после Kubernetes. В сообщении в блоге, где было объявлено об этом, говорилось, что инструмент использовался во многих компаниях, включая Цифровой океан, Ericsson, CoreOS, Ткачество, Красная шляпа, и Google.[12]

Prometheus 1.0 был выпущен в июле 2016 года.[13] Последующие версии были выпущены в течение 2016 и 2017 годов, что привело к появлению Prometheus 2.0 в ноябре 2017 года.[14][15][16][17][18][19][20][21][22]

В августе 2018 года Фонд облачных вычислений объявил о завершении проекта Prometheus.[6]

Архитектура

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

  • Несколько экспортеры которые обычно выполняются на отслеживаемом хосте для экспорта локальных показателей.
  • Prometheus для централизации и хранения метрик.
  • Alertmanager[23] для запуска предупреждений на основе этих показателей.
  • Графана производить информационные панели.
  • PromQL язык запросов, используемый для создания информационных панелей и предупреждений.

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

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

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

Сбор информации

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

PromQL

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

  • Измерять
  • Прилавок
  • Гистограмма
  • Резюме

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

В Prometheus можно указать конфигурацию предупреждений, которая определяет условие, которое необходимо поддерживать в течение определенного времени, чтобы сработало предупреждение. Когда срабатывают предупреждения, они перенаправляются в службу Alertmanager. Alertmanager может включать логику для отключения предупреждений, а также для их пересылки на электронную почту, Slack или в службы уведомлений, такие как PagerDuty.[28]. Некоторые другие системы обмена сообщениями, например Команды Microsoft[29] можно настроить с помощью Приемник веб-перехватчика Alertmanager как механизм для внешних интеграций.

Дашборды

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

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

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

Prometheus делает акцент на доступности платформы и основных операциях.[33] Метрики обычно хранятся в течение нескольких недель. Для долгосрочного хранения метрики можно передавать в решения для удаленного хранения. [34]

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

Существует попытка продвинуть формат экспозиции Prometheus в стандарт, известный как OpenMetrics.[35] Некоторые продукты приняли формат: набор TICK от InfluxData,[36] InfluxDB, Облачная платформа Google,[37] и DataDog.[38]

использование

Prometheus был впервые использован в SoundCloud, где он был разработан, для мониторинга их систем.[8] У Cloud Native Computing Foundation есть ряд тематических исследований других компаний, использующих Prometheus. К ним относятся услуги цифрового хостинга Цифровой океан,[39] цифровой фестиваль DreamHack[40] а также по электронной почте и в службе миграции ShuttleCloud.[41] Раздельно, Пандора Радио упомянул об использовании Prometheus для мониторинга своего конвейера данных.[42]

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

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

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

  1. ^ Релизы на Github
  2. ^ "Обзор". prometheus.io.
  3. ^ Джеймс Тернбулл (12 июня 2018 г.). Мониторинг с Prometheus. Тернбулл Пресс. ISBN  978-0-9888202-8-9.
  4. ^ «Prometheus: от показателей к аналитическим данным. Улучшите свои показатели и оповещения с помощью ведущего решения для мониторинга с открытым исходным кодом». Получено 26 декабря, 2018.
  5. ^ "Прометей". Получено 26 декабря, 2018.
  6. ^ а б Эванс, Кристен (9 августа 2018 г.). «Фонд облачных вычислений объявляет о выпуске Прометея». Получено 26 декабря, 2018.
  7. ^ Брайан Бразил (9 июля 2018 г.). Prometheus: Готово и работает: мониторинг производительности инфраструктуры и приложений. O'Reilly Media. п. 3. ISBN  978-1-4920-3409-4.
  8. ^ а б c d е ж грамм час Волц, Юлий; Рабенштейн, Бьёрн. «Прометей: мониторинг в SoundCloud». SoundCloud.
  9. ^ а б «Мониторинг контейнеров Docker с помощью Prometheus». 5π Консалтинг. 26 января 2015 года.
  10. ^ Мерфи, Найл; Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер (2016). Проектирование надежности сайта: как Google управляет производственными системами. O'Reilly Media. ISBN  978-1491929124. Несмотря на то, что Borgmon остается внутренним подразделением Google, идея обработки данных временных рядов в качестве источника данных для генерации предупреждений теперь доступна каждому с помощью таких инструментов с открытым исходным кодом, как Prometheus ...
  11. ^ Волц, Юлиус (4 сентября 2017 г.). «ПромКон 2017: Итоги конференции» - через YouTube. Я присоединился к SoundCloud еще в 2012 году из Google ... у нас еще не было инструментов мониторинга, которые работали бы с такой динамической средой. Нам не хватало способа, которым Google проводил мониторинг своего внутреннего планировщика кластеров, и мы были очень вдохновлены этим и, наконец, решили создать собственное решение с открытым исходным кодом.
  12. ^ «Фонд облачных вычислений принимает Prometheus в качестве второго размещенного проекта». Фонд облачных вычислений. 9 мая 2016 г.. Получено 26 декабря, 2018.
  13. ^ «Прометей 1.0 здесь». Фонд облачных вычислений. 18 июля 2016 г.. Получено 26 декабря, 2018.
  14. ^ «Новые возможности Prometheus 1.1.0». Устойчивое восприятие. 5 сентября 2016 г.. Получено 26 декабря, 2018.
  15. ^ «Новые возможности Prometheus 1.2.0». Устойчивое восприятие. 10 октября 2016 г.. Получено 26 декабря, 2018.
  16. ^ «Новые возможности Prometheus 1.3.0». Устойчивое восприятие. 7 ноября 2016 г.. Получено 26 декабря, 2018.
  17. ^ «Новые возможности Prometheus 1.4.0». Устойчивое восприятие. 28 ноября 2016 г.. Получено 26 декабря, 2018.
  18. ^ «Новые возможности Prometheus 1.5.0». Устойчивое восприятие. 10 октября 2016 г.. Получено 26 декабря, 2018.
  19. ^ «Новые возможности Prometheus 1.6.0». Устойчивое восприятие. 17 апреля 2017 г.. Получено 26 декабря, 2018.
  20. ^ «Новые возможности Prometheus 1.7.0». Устойчивое восприятие. 9 октября 2017 г.. Получено 26 декабря, 2018.
  21. ^ «Новые возможности Prometheus 1.8.0». Устойчивое восприятие. 9 октября 2017 г.. Получено 26 декабря, 2018.
  22. ^ «Новые возможности Prometheus 2.0.0». Устойчивое восприятие. 8 ноября 2017 г.. Получено 26 декабря, 2018.
  23. ^ https://github.com/prometheus/alertmanager
  24. ^ "Модель данных". Прометей. Получено 26 декабря, 2018.
  25. ^ «Интеграции - Прометей». prometheus.io.
  26. ^ «Prometheus: собирает показатели, предоставляет предупреждения и строит графики для веб-интерфейса». 18 марта 2017 г.. Получено 26 декабря, 2018.
  27. ^ "Запрашивая Прометея". Получено 4 ноября, 2019.
  28. ^ Дубей, Абхишек (25 марта 2018 г.). «Интеграция AlertManager с Prometheus». Получено 26 декабря, 2018.
  29. ^ Данука, Пранит (8 марта 2020 г.). «Оповещение для облачных приложений с помощью Prometheus». Получено 18 октября, 2020.
  30. ^ Рикбош, Фредерик (28 июля 2017 г.). «Прометей мониторинг: плюсы и минусы». Получено 26 декабря, 2018.
  31. ^ Прометей. «Аппаратура - Прометей». prometheus.io.
  32. ^ «Экспортеры». prometheus.io.
  33. ^ Прометей. «Прометей - система мониторинга и база данных временных рядов». prometheus.io.
  34. ^ «Интеграции - Прометей». prometheus.io.
  35. ^ «OpenMetrics». GitHub. 2018-11-13.
  36. ^ «Телеграф от InfluxData». 2018-12-25.
  37. ^ «Объявление о мониторинге Stackdriver Kubernetes».
  38. ^ "DataDogHQ".
  39. ^ Эванс, Кристен (28 февраля 2017 г.). «Профиль пользователя Prometheus: как DigitalOcean использует Prometheus». Фонд облачных вычислений. Получено 26 декабря, 2018.
  40. ^ Эванс, Кристен (24 августа 2016 г.). «Профиль пользователя Prometheus: мониторинг крупнейшего в мире цифрового фестиваля - DreamHack». Фонд облачных вычислений. Получено 26 декабря, 2018.
  41. ^ Эванс, Кирстен (17 мая 2017 г.). «Профиль пользователя Prometheus: ShuttleCloud объясняет, почему Prometheus хорош для вашего небольшого стартапа». Фонд облачных вычислений. Получено 26 декабря, 2018.
  42. ^ Хайдрей, Эйс (15 марта 2018 г.). "Apache Airflow в Пандоре". Инженерное дело в Pandora. Получено 26 декабря, 2018.
  43. ^ «Метрики GitLab Prometheus». Получено 26 декабря, 2018.
  44. ^ «GitLab 9.0 выпущен с подгруппами и платами развертывания». GitLab. 2017-03-22.

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

  • Расс, Маккендрик (2015-12-15). Мониторинг Docker: отслеживайте свои контейнеры Docker и их приложения с помощью различных собственных и сторонних инструментов с помощью этого эксклюзивного руководства!. Бирмингем, Великобритания. ISBN  9781785885501. OCLC  933610431.
  • ИОСИФ., ГЕК (2018). КУБЕРНЕТЫ ДЛЯ РАЗРАБОТЧИКОВ используют кубернеты для разработки, тестирования и развертывания ваших приложений с помощью контейнеров; кубернеты для разработки. [S.l.]: ИЗДАНИЕ УПАКОВКИ. ISBN  978-1788830607. OCLC  1031909876.
  • 1976-, Бернс, Брендан (20.02.2018). Проектирование распределенных систем: шаблоны и парадигмы масштабируемых надежных сервисов (Первое изд.). Севастополь, Калифорния. ISBN  9781491983614. OCLC  1023861580.CS1 maint: числовые имена: список авторов (связь)
  • Мартин., Гельмих (2017). Облачное программирование с помощью Golang Разработка высокопроизводительных веб-приложений на основе микросервисов для облака с помощью Go. Андравос, Мина., Снок, Джелмер. Бирмингем: Издательство Пакта. ISBN  9781787127968. OCLC  1020029257.
  • Алок, Шриваства (23 февраля 2018 г.). Гибридное облако для архитекторов: создавайте надежные гибридные облачные решения с помощью AWS и OpenStack. Бирмингем, Великобритания. ISBN  9781788627986. OCLC  1028641698.
  • Kaewkasi, Chanwit (2016). Собственная кластеризация Docker с помощью Swarm. ISBN  978-1786469755.