Прометей (программное обеспечение) - Prometheus (software)
изначальный выпуск | 24 ноября 2012 г. |
---|---|
Стабильный выпуск | v2.22.0[1] / 15 октября 2020 |
Репозиторий | 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]
Смотрите также
- Check_MK
- Ганглии (программное обеспечение)
- Zabbix
- Sensu Core
- Сравнение систем сетевого мониторинга
- Список систем управления системами
Рекомендации
- ^ Релизы на Github
- ^ "Обзор". prometheus.io.
- ^ Джеймс Тернбулл (12 июня 2018 г.). Мониторинг с Prometheus. Тернбулл Пресс. ISBN 978-0-9888202-8-9.
- ^ «Prometheus: от показателей к аналитическим данным. Улучшите свои показатели и оповещения с помощью ведущего решения для мониторинга с открытым исходным кодом». Получено 26 декабря, 2018.
- ^ "Прометей". Получено 26 декабря, 2018.
- ^ а б Эванс, Кристен (9 августа 2018 г.). «Фонд облачных вычислений объявляет о выпуске Прометея». Получено 26 декабря, 2018.
- ^ Брайан Бразил (9 июля 2018 г.). Prometheus: Готово и работает: мониторинг производительности инфраструктуры и приложений. O'Reilly Media. п. 3. ISBN 978-1-4920-3409-4.
- ^ а б c d е ж грамм час Волц, Юлий; Рабенштейн, Бьёрн. «Прометей: мониторинг в SoundCloud». SoundCloud.
- ^ а б «Мониторинг контейнеров Docker с помощью Prometheus». 5π Консалтинг. 26 января 2015 года.
- ^ Мерфи, Найл; Бейер, Бетси; Джонс, Крис; Петофф, Дженнифер (2016). Проектирование надежности сайта: как Google управляет производственными системами. O'Reilly Media. ISBN 978-1491929124.
Несмотря на то, что Borgmon остается внутренним подразделением Google, идея обработки данных временных рядов в качестве источника данных для генерации предупреждений теперь доступна каждому с помощью таких инструментов с открытым исходным кодом, как Prometheus ...
- ^ Волц, Юлиус (4 сентября 2017 г.). «ПромКон 2017: Итоги конференции» - через YouTube.
Я присоединился к SoundCloud еще в 2012 году из Google ... у нас еще не было инструментов мониторинга, которые работали бы с такой динамической средой. Нам не хватало способа, которым Google проводил мониторинг своего внутреннего планировщика кластеров, и мы были очень вдохновлены этим и, наконец, решили создать собственное решение с открытым исходным кодом.
- ^ «Фонд облачных вычислений принимает Prometheus в качестве второго размещенного проекта». Фонд облачных вычислений. 9 мая 2016 г.. Получено 26 декабря, 2018.
- ^ «Прометей 1.0 здесь». Фонд облачных вычислений. 18 июля 2016 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.1.0». Устойчивое восприятие. 5 сентября 2016 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.2.0». Устойчивое восприятие. 10 октября 2016 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.3.0». Устойчивое восприятие. 7 ноября 2016 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.4.0». Устойчивое восприятие. 28 ноября 2016 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.5.0». Устойчивое восприятие. 10 октября 2016 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.6.0». Устойчивое восприятие. 17 апреля 2017 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.7.0». Устойчивое восприятие. 9 октября 2017 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 1.8.0». Устойчивое восприятие. 9 октября 2017 г.. Получено 26 декабря, 2018.
- ^ «Новые возможности Prometheus 2.0.0». Устойчивое восприятие. 8 ноября 2017 г.. Получено 26 декабря, 2018.
- ^ https://github.com/prometheus/alertmanager
- ^ "Модель данных". Прометей. Получено 26 декабря, 2018.
- ^ «Интеграции - Прометей». prometheus.io.
- ^ «Prometheus: собирает показатели, предоставляет предупреждения и строит графики для веб-интерфейса». 18 марта 2017 г.. Получено 26 декабря, 2018.
- ^ "Запрашивая Прометея". Получено 4 ноября, 2019.
- ^ Дубей, Абхишек (25 марта 2018 г.). «Интеграция AlertManager с Prometheus». Получено 26 декабря, 2018.
- ^ Данука, Пранит (8 марта 2020 г.). «Оповещение для облачных приложений с помощью Prometheus». Получено 18 октября, 2020.
- ^ Рикбош, Фредерик (28 июля 2017 г.). «Прометей мониторинг: плюсы и минусы». Получено 26 декабря, 2018.
- ^ Прометей. «Аппаратура - Прометей». prometheus.io.
- ^ «Экспортеры». prometheus.io.
- ^ Прометей. «Прометей - система мониторинга и база данных временных рядов». prometheus.io.
- ^ «Интеграции - Прометей». prometheus.io.
- ^ «OpenMetrics». GitHub. 2018-11-13.
- ^ «Телеграф от InfluxData». 2018-12-25.
- ^ «Объявление о мониторинге Stackdriver Kubernetes».
- ^ "DataDogHQ".
- ^ Эванс, Кристен (28 февраля 2017 г.). «Профиль пользователя Prometheus: как DigitalOcean использует Prometheus». Фонд облачных вычислений. Получено 26 декабря, 2018.
- ^ Эванс, Кристен (24 августа 2016 г.). «Профиль пользователя Prometheus: мониторинг крупнейшего в мире цифрового фестиваля - DreamHack». Фонд облачных вычислений. Получено 26 декабря, 2018.
- ^ Эванс, Кирстен (17 мая 2017 г.). «Профиль пользователя Prometheus: ShuttleCloud объясняет, почему Prometheus хорош для вашего небольшого стартапа». Фонд облачных вычислений. Получено 26 декабря, 2018.
- ^ Хайдрей, Эйс (15 марта 2018 г.). "Apache Airflow в Пандоре". Инженерное дело в Pandora. Получено 26 декабря, 2018.
- ^ «Метрики GitLab Prometheus». Получено 26 декабря, 2018.
- ^ «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.