Что такое Prometheus Pushgateway
1️⃣ Как кратко ответить
Prometheus Pushgateway — это компонент в экосистеме Prometheus, который позволяет временным или краткосрочным заданиям отправлять свои метрики в Prometheus. Он действует как промежуточный буфер, принимая метрики через HTTP-запросы и предоставляя их для сбора Prometheus.
2️⃣ Подробное объяснение темы
Prometheus — это система мониторинга и оповещения с открытым исходным кодом, которая собирает и хранит метрики в формате временных рядов. Обычно Prometheus сам запрашивает метрики у приложений, но в некоторых случаях это невозможно или неэффективно. Например, если у вас есть краткосрочные задания, такие как batch-скрипты или cron-задачи, которые выполняются быстро и не имеют постоянного сетевого адреса, Prometheus не сможет их опросить.
Здесь на помощь приходит Prometheus Pushgateway. Он позволяет таким заданиям отправлять свои метрики в Pushgateway, который затем хранит их и предоставляет для сбора Prometheus. Это полезно для задач, которые не живут достаточно долго, чтобы быть опрошенными Prometheus напрямую.
Как это работает
-
Отправка метрик в Pushgateway: Краткосрочные задания отправляют свои метрики в Pushgateway через HTTP-запросы. Это делается с помощью клиентских библиотек Prometheus, которые поддерживают отправку метрик в формате, понятном Pushgateway.
Пример отправки метрик с помощью Python:
from prometheus_client import CollectorRegistry, Gauge, push_to_gateway # Создаем реестр для метрик registry = CollectorRegistry() # Определяем метрику типа Gauge g = Gauge('job_last_success', 'Last time a batch job successfully finished', registry=registry) # Устанавливаем значение метрики g.set_to_current_time() # Отправляем метрику в Pushgateway push_to_gateway('localhost:9091', job='batchA', registry=registry)CollectorRegistry(): Создает новый реестр для хранения метрик.Gauge: Определяет метрику типа Gauge, которая может принимать произвольные числовые значения.set_to_current_time(): Устанавливает значение метрики на текущее время.push_to_gateway(): Отправляет метрики в указанный Pushgateway.
-
Хранение и предоставление метрик: Pushgateway хранит полученные метрики и предоставляет их в формате, который может быть опрошен Prometheus. Это позволяет Prometheus собирать метрики, как если бы они были предоставлены обычным экспортером.
-
Сбор метрик Prometheus: Prometheus конфигурируется для опроса Pushgateway, как если бы это был обычный экспортер. Метрики, собранные из Pushgateway, затем могут быть использованы для построения графиков, создания алертов и других задач мониторинга.
Применение
Prometheus Pushgateway полезен в сценариях, где:
- Задания краткосрочны и не могут быть опрошены Prometheus напрямую.
- Необходимо сохранить состояние метрик между запусками заданий.
- Требуется агрегировать метрики от множества краткосрочных заданий в одном месте.
Pushgateway не предназначен для долгосрочного хранения метрик и не должен использоваться для метрик, которые могут быть собраны напрямую Prometheus. Это временное хранилище, которое помогает интегрировать краткосрочные задачи в экосистему Prometheus.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться