Первоначальная версия | 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.
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 хранятся в форме метрик, причем каждая метрика имеет имя, которое используется для обращения к нему и запроса. Каждая метрика может быть развернута по произвольному количеству пар ключ = значение (меток). Ярлыки могут включать информацию об источнике данных (с какого сервера поступают данные) и другую информацию о конкретных приложениях, такую как код состояния HTTP (для показателей, связанных с ответами HTTP), метод запроса (GET по сравнению с POST), конечную точку и т. Д.. Возможность указывать произвольный список меток и делать запросы на их основе в реальном времени - вот почему модель данных Prometheus называется многомерной.
Prometheus хранит данные локально на диске, что помогает для быстрого хранения данных и быстрые запросы. Есть возможность хранить метрики в удаленном хранилище.
Прометей собирает данные в виде временных рядов. Временные ряды строятся с помощью модели извлечения: сервер Prometheus запрашивает список источников данных (иногда называемых экспортерами) с определенной частотой опроса. Каждый из источников данных обслуживает текущие значения метрик для этого источника данных в конечной точке, запрошенной Prometheus. Затем сервер Prometheus объединяет данные из источников данных. Prometheus имеет ряд механизмов для автоматического обнаружения ресурсов, которые он должен использовать в качестве источников данных.
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 фокусируется на доступности платформы и основных операциях. Метрики обычно хранятся в течение нескольких недель. Для долгосрочного хранения метрики можно передавать в решения для удаленного хранения.
Предпринимаются попытки продвинуть формат экспозиции 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