Prometheus (программное обеспечение)

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

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

Содержание
  • 1 История
  • 2 Архитектура
    • 2.1 Формат хранения данных
    • 2.2 Сбор данных
    • 2.3 PromQL
    • 2.4 Предупреждения и мониторинг
    • 2.5 Панели мониторинга
    • 2.6 Совместимость
    • 2.7 Стандартизация в OpenMetrics
  • 3 Использование
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература
История

Prometheus был разработан в SoundCloud, начиная с 2012 года, когда компания обнаружила, что их существующих метрик и решений для мониторинга (с использованием StatsD и Graphite ) недостаточно для их потребности. В частности, они определили потребности, для удовлетворения которых был создан Prometheus, в том числе: многомерная модель данных, простота эксплуатации, масштабируемый сбор данных и мощный язык запросов - все в одном инструменте. С самого начала проект был с открытым исходным кодом и начал использоваться пользователями Boxever и Docker, несмотря на то, что об этом не было явным образом объявлено. Prometheus был вдохновлен инструментом мониторинга, который Borgmon использовал в Google.

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

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

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

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

Архитектура

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

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

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

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

Prometheus хранит данные локально на диске, что помогает для быстрого хранения данных и быстрые запросы. Есть возможность хранить метрики в удаленном хранилище.

Сбор данных

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

PromQL

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

  • Датчик
  • Счетчик
  • Гистограмма
  • Сводка

Предупреждения и мониторинг

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

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

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

Взаимодействие

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

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

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

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

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

Prometheus впервые был использован внутри компании SoundCloud, где он был разработан для мониторинга их систем. У Cloud Native Computing Foundation есть ряд тематических исследований других компаний, использующих Prometheus. К ним относятся цифровой хостинг Digital Ocean, цифровой фестиваль DreamHack, а также служба миграции электронной почты и контактов ShuttleCloud. Отдельно Pandora Radio упомянул об использовании Prometheus для мониторинга своего конвейера данных.

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

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