Прометей (программное обеспечение)
![]() | |
Первоначальный выпуск | 24 ноября 2012 г |
---|---|
Стабильная версия | v2.53.0 [1] / 16 июня 2024 г |
Репозиторий | github |
Написано в | Идти |
Операционная система | Кросс-платформенный |
Тип | База данных временных рядов |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | Прометей |
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]
Прометей 1.0 был выпущен в июле 2016 года. [13] Последующие версии были выпущены в 2016 и 2017 годах, что привело к выпуску Prometheus 2.0 в ноябре 2017 года. [14]
В августе 2018 года Фонд Cloud Native Computing Foundation объявил о завершении проекта Prometheus. [6]
Было проведено множество конференций, посвященных Прометею.
Архитектура
[ редактировать ]Типичная платформа мониторинга с Prometheus состоит из нескольких инструментов: [ нужна ссылка ]
- несколько экспортеров для экспорта локальных показателей. На отслеживаемом хосте обычно запускаются
- Prometheus для централизации и хранения показателей.
- Менеджер оповещений [15] для запуска оповещений на основе этих показателей.
- Grafana для создания дашбордов.
- PromQL — это язык запросов, используемый для создания информационных панелей и оповещений.
Формат хранения данных
[ редактировать ]Данные 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 . Четыре типа: [20]
- Измерять
- Прилавок
- Гистограмма
- Краткое содержание
Оповещения и мониторинг
[ редактировать ]Конфигурацию оповещений можно указать в Prometheus, где указывается условие, которое необходимо поддерживать в течение определенного времени, чтобы оповещение сработало. При срабатывании оповещений они пересылаются в службу Alertmanager. Alertmanager может включать логику для отключения оповещений, а также для пересылки их по электронной почте, в Slack или в службы уведомлений, такие как PagerDuty . [21] Некоторые другие системы обмена сообщениями, такие как Microsoft Teams [22] можно настроить с помощью приемника Alertmanager Webhook в качестве механизма внешней интеграции. [23] Также Prometheus Alerts можно использовать для получения оповещений непосредственно на устройствах Android, даже без необходимости настройки каких-либо целей в Alert Manager. [24]
Панели мониторинга
[ редактировать ]Прометей не задуман как полноценная приборная панель. Хотя его можно использовать для построения графиков конкретных запросов, он не является полноценной информационной панелью, и его необходимо подключить к Grafana для создания информационных панелей ; это было названо недостатком из-за дополнительной сложности установки. [25]
Совместимость
[ редактировать ]Prometheus предпочитает мониторинг «белого ящика». Приложениям рекомендуется публиковать (экспортировать) внутренние метрики, которые Prometheus будет периодически собирать. [26] Некоторые экспортеры и агенты для различных приложений могут предоставить показатели. [27] Prometheus поддерживает некоторые протоколы мониторинга и администрирования, обеспечивающие совместимость при переходе: Graphite , StatsD, SNMP , JMX и CollectD.
Прометей фокусируется на доступности платформы и основных операциях. [28] Метрики обычно хранятся в течение нескольких недель. Для долгосрочного хранения метрики можно передавать в удаленное хранилище. [17]
Стандартизация в OpenMetrics
[ редактировать ]Предпринимаются попытки превратить формат представления Prometheus в стандарт, известный как OpenMetrics. [29] Некоторые продукты приняли этот формат: пакет TICK от InfluxData, [30] InfluxDB , облачная платформа Google , [31] и ДатаДог. [32]
Использование
[ редактировать ]Впервые Prometheus использовался в SoundCloud, где он был разработан, для мониторинга своих систем. [8] Фонд Cloud Native Computing Foundation располагает рядом тематических исследований других компаний, использующих Prometheus. К ним относятся сервис цифрового хостинга DigitalOcean , [33] цифровой фестиваль DreamHack , [34] по электронной почте и свяжитесь со службой миграции ShuttleCloud. [35] Отдельно Pandora Radio упомянуло об использовании Prometheus для мониторинга своего конвейера данных. [36]
GitLab предоставляет руководство по интеграции с Prometheus для экспорта метрик GitLab в Prometheus. [37] и он активирован по умолчанию, начиная с версии 9.0 [38]
См. также
[ редактировать ]- Проверить МК
- Ганглии (программное обеспечение)
- Забфикс
- Сравнение систем сетевого мониторинга
- Список систем управления системами
Ссылки
[ редактировать ]- ^ Последний выпуск на Github.
- ^ «Обзор» . prometheus.io .
- ^ Джеймс Тернбулл (12 июня 2018 г.). Мониторинг с помощью Прометея . Тернбулл Пресс. ISBN 978-0-9888202-8-9 .
- ^ «Прометей: от показателей к аналитике. Усильте свои показатели и оповещения с помощью ведущего решения для мониторинга с открытым исходным кодом» . Проверено 26 декабря 2018 г.
- ^ «Прометей» . Гитхаб . Проверено 26 декабря 2018 г.
- ^ Jump up to: а б Эванс, Кристен (9 августа 2018 г.). «Фонд Cloud Native Computing объявляет об окончании Прометея» . Проверено 26 декабря 2018 г.
- ^ Брайан Бразил (9 июля 2018 г.). Prometheus: Up & Running: мониторинг производительности инфраструктуры и приложений . О'Рейли Медиа. п. 3. ISBN 978-1-4920-3409-4 .
- ^ Jump up to: а б с д и ж г час Фольц, Юлиус; Рабенштейн, Бьорн (26 января 2015 г.). «Прометей: Мониторинг в SoundCloud» . Саундклауд .
- ^ Jump up to: а б «Мониторинг Docker-контейнеров с помощью Prometheus» . 5π Консалтинг. 26 января 2015 года. Архивировано из оригинала 3 января 2019 года . Проверено 26 декабря 2018 г.
- ^ Мерфи, Найл; Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер (2016). Проектирование надежности сайта: как Google управляет производственными системами . О'Рейли Медиа. ISBN 978-1491929124 .
Несмотря на то, что Borgmon остается внутренней частью Google, идея рассматривать данные временных рядов как источник данных для генерации оповещений теперь доступна каждому через такие инструменты с открытым исходным кодом, как Prometheus...
- ^ Фольц, Юлиус (4 сентября 2017 г.). «ПромКон 2017: Итоги конференции» – через YouTube.
Я присоединился к SoundCloud еще в 2012 году из Google… у нас еще не было инструментов мониторинга, которые работали бы в такой динамической среде. Нам не хватало того, как Google осуществлял мониторинг собственного внутреннего планировщика кластера, и мы были очень вдохновлены этим и, наконец, решили создать собственное решение с открытым исходным кодом.
- ^ «Фонд Cloud Native Computing Foundation принимает Prometheus в качестве второго размещенного проекта» . Фонд облачных вычислений . 9 мая 2016 года . Проверено 26 декабря 2018 г.
- ^ «Прометей 1.0 уже здесь» . Фонд облачных вычислений . 18 июля 2016 г. Проверено 26 декабря 2018 г.
- ^ «Новые возможности Прометея 2.0.0» . Устойчивое восприятие. 8 ноября 2017 г. Проверено 26 декабря 2018 г.
- ^ «Менеджер оповещений» . Гитхаб . 17 мая 2022 г.
- ^ «Модель данных» . Прометей . Проверено 26 декабря 2018 г.
- ^ Jump up to: а б «Интеграции – Прометей» . prometheus.io .
- ^ «Прометей: собирает показатели, предоставляет оповещения и отображает веб-интерфейс в виде графиков» . 18 марта 2017 года . Проверено 26 декабря 2018 г.
- ^ «Вопрошающий Прометей» . Проверено 4 ноября 2019 г.
- ^ «Виды метрик» . prometheus.io . Проверено 29 июня 2024 г.
- ^ Дубей, Абхишек (25 марта 2018 г.). «Интеграция AlertManager с Прометеем» . Проверено 26 декабря 2018 г.
- ^ Данука, Пранит (8 марта 2020 г.). «Оповещение об облачных приложениях с помощью Prometheus» . Проверено 18 октября 2020 г.
- ^ «Интеграции | Прометей» .
- ^ «Оповещения Прометея – Приложения в Google Play» .
- ^ Рикбош, Фредерик (28 июля 2017 г.). «Мониторинг Прометея: плюсы и минусы» . Проверено 26 декабря 2018 г.
- ^ Прометей. «Приборы – Прометей» . prometheus.io .
- ^ «Экспортеры» . prometheus.io .
- ^ Прометей. "Прометей - Система мониторинга и база данных временных рядов" . prometheus.io .
- ^ «ОпенМетрикс» . Гитхаб . 13.11.2018.
- ^ «Телеграф от InfluxData» . Гитхаб . 25 декабря 2018 г.
- ^ «Анонсируем мониторинг Stackdriver Kubernetes» .
- ^ «ДатаДогХК» .
- ^ Эванс, Кристен (28 февраля 2017 г.). «Профиль пользователя Prometheus: как DigitalOcean использует Prometheus» . Фонд облачных вычислений . Проверено 26 декабря 2018 г.
- ^ Эванс, Кристен (24 августа 2016 г.). «Профиль пользователя Prometheus: мониторинг крупнейшего в мире цифрового фестиваля - DreamHack» . Фонд облачных вычислений . Проверено 26 декабря 2018 г.
- ^ Эванс, Кирстен (17 мая 2017 г.). «Профиль пользователя Prometheus: ShuttleCloud объясняет, почему Prometheus хорош для вашего небольшого стартапа» . Фонд облачных вычислений . Проверено 26 декабря 2018 г.
- ^ Хейдри, Эйс (15 марта 2018 г.). «Apache Airflow в Пандоре» . Инженерное дело в Пандоре . Проверено 26 декабря 2018 г.
- ^ «Метрики GitLab Prometheus» . Проверено 26 декабря 2018 г.
- ^ «Выпущен GitLab 9.0 с подгруппами и досками развертывания» . ГитЛаб. 22 марта 2017 г.
Дальнейшее чтение
[ редактировать ]- Расс, Маккендрик (15 декабря 2015 г.). Мониторинг Docker: следите за своими контейнерами Docker и их приложениями с помощью различных собственных и сторонних инструментов с помощью этого эксклюзивного руководства! . Бирмингем, Великобритания. ISBN 9781785885501 . OCLC 933610431 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ДЖОЗЕФ., ХЕК (2018). KUBERNETES ДЛЯ РАЗРАБОТЧИКОВ используйте kubernetes для разработки, тестирования и развертывания приложений с помощью контейнеров; используйте kubernetes для разработки . [Sl]: ПУБЛИКАЦИЯ ПАКЕТА. ISBN 978-1788830607 . OCLC 1031909876 .
- Бернс, Брендан (20 февраля 2018 г.). Проектирование распределенных систем: шаблоны и парадигмы для масштабируемых и надежных услуг (Первое изд.). Севастополь, Калифорния. ISBN 9781491983614 . OCLC 1023861580 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - Мартин., Хельмих (2017). Облачное программирование с помощью Golang. Разрабатывайте высокопроизводительные веб-приложения на основе микросервисов для облака с помощью Go . Андравос, Мина, Снук, Джелмер. Бирмингем: Packt Publishing. ISBN 9781787127968 . OCLC 1020029257 .
- Алок, Шриваства (23 февраля 2018 г.). Гибридное облако для архитекторов: создавайте надежные гибридные облачные решения с помощью AWS и OpenStack . Бирмингем, Великобритания. ISBN 9781788627986 . OCLC 1028641698 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - Каевкаси, Чанвит (2016). Нативная кластеризация Docker с помощью Swarm . ISBN 978-1786469755 .