Что такое Deckhouse Prom++?
Deckhouse Prom++ – это система мониторинга для высоконагруженной инфраструктуры с открытым исходным кодом, разработанная для сбора метрик из различных источников и удобного анализа этих данных. Использует в своем ядре сочетание языков программирования Golang и C++, за счет чего мониторинговые данные хранятся в оперативной памяти в максимально сжатом виде, позволяя экономить память без ущерба производительности.
Функциональные характеристики
Сбор метрик (Pull-модель)
Deckhouse Prom++ работает по принципу «pull» (вытягивания данных): он самостоятельно опрашивает («scrape») целевые источники по HTTP/HTTPS и получает от них метрики (мониторинговые данные) в формате, совместимом со спецификацией Prometheus. Метрики, которые собирает Deckhouse Prom++, представляют собой временные ряды (time series) с метками (labels). Метки позволяют группировать и фильтровать метрики для более детального анализа.
Хранение данных
Deckhouse Prom++ использует специальную высокопроизводительную базу данных на диске. Данную БД можно описать как «Time Series Database» (TSDB). Данные хранятся в виде временных рядов, разбитых на блоки, что позволяет эффективно обрабатывать большие объёмы метрик. У Deckhouse Prom++ отсутствует традиционная реляционная СУБД; хранение и оптимизация запросов максимально заточены под работу с временными рядами.
Язык запросов (PromQL)
В Deckhouse Prom++ реализован PromQL (Prometheus Query Language) — это язык запросов, который дает возможность выполнять гибкие операции с метриками во времени (например, суммирование, усреднение, выборка по меткам). PromQL поддерживает функции агрегации (sum, avg, max, min, count и т.д.), а также обеспечивает создание новых временных рядов на базе имеющихся. Язык позволяет не только извлекать сырые данные, но и проводить комплексные вычисления, построение графиков и вычисление различных показателей (SLO/SLI), что упрощает аналитику.
Правила алертинга (Alerting Rules) и производные метрики (Recording Rules)
Recording Rules – позволяют предвычислять наиболее часто запрашиваемые или тяжёлые по ресурсам метрики и сохранять результаты в виде новых временных рядов. Выполняются Prometheus с заданным интервалом (например, каждые 30 секунд или минуту). Результат записывается обратно в базу TSDB под новым именем метрики. Ускоряют построение графиков и аналитических запросов, поскольку вместо «сырых» метрик используются уже агрегированные данные.
Alerting Rules – определяют условия (на базе PromQL) для формирования оповещений, если метрика выходит за заданные пределы или удовлетворяет определённому выражению. Поддерживают разные уровни критичности, временные интервалы, игнорирование определенных лейблов и прочие тонкие настройки. При срабатывании пересылают данные о тревоге в Alertmanager для последующей маршрутизации.
Интеграция и сбор мониторинговых данных из различных источников
Deckhouse Prom++ легко интегрируется с многочисленными системами и сервисами благодаря стандартному формату экспорта метрик. В экосистеме Prometheus уже существует огромное количество экспортеров, позволяющих собирать метрики из различных систем, таких как: базы данных (MySQL, PostgreSQL, MongoDB), веб-серверы (Nginx, Apache), инфраструктурные компоненты (Docker, Kubernetes, etcd) и т.д.
Конфигурация Deckhouse Prom++ описывается в YAML-файлах. В них указываются «target»-ы (конечные точки для сбора метрик), задачи (jobs), настройки частоты опроса, правила оповещений и т.д. При использовании в окружении Kubernetes Deckhouse Prom++ может автоматически обнаруживать новые сервисы и контейнеры (service discovery), что сильно упрощает мониторинг динамических микросервисных сред.
Визуализация
Веб-интерфейс Deckhouse Prom++ позволяет выполнять запросы PromQL «на лету» и смотреть результаты в виде графика или списка точек данных. Это удобно для быстрой диагностики и отладки.
Федерация
Deckhouse Prom++ обычно развертывается отдельно в каждом кластере или подсистеме, а затем используют «федерацию» или иные механизмы агрегации для сбора и анализа метрик на более высоком уровне. Модель федерации Deckhouse Prom++ позволяет одному серверу Deckhouse Prom++ периодически запрашивать агрегированные данные у других серверов Deckhouse Prom++, что особенно полезно в крупных распределенных инфраструктурах.
Высокая производительность
Применяемая модель хранения данных и эффективная структура каталогов (tsdb) позволяют Deckhouse Prom++ обрабатывать тысячи и даже миллионы метрик в секунду, сохраняя при этом высокую скорость ответа на запросы.
Поддерживаемые операционные системы:
- МОС ОС
- РЕД ОС
- РОСА Сервер
- ALT Linux
- Astra Linux Special Edition