← Назад ко всем вопросам

Что такое Prometheus Pushgateway

1️⃣ Как кратко ответить

Prometheus Pushgateway — это компонент в экосистеме Prometheus, который позволяет временным или краткосрочным заданиям отправлять свои метрики в Prometheus. Он действует как промежуточный буфер, принимая метрики через HTTP-запросы и предоставляя их для сбора Prometheus.

2️⃣ Подробное объяснение темы

Prometheus — это система мониторинга и оповещения с открытым исходным кодом, которая собирает и хранит метрики в формате временных рядов. Обычно Prometheus сам запрашивает метрики у приложений, но в некоторых случаях это невозможно или неэффективно. Например, если у вас есть краткосрочные задания, такие как batch-скрипты или cron-задачи, которые выполняются быстро и не имеют постоянного сетевого адреса, Prometheus не сможет их опросить.

Здесь на помощь приходит Prometheus Pushgateway. Он позволяет таким заданиям отправлять свои метрики в Pushgateway, который затем хранит их и предоставляет для сбора Prometheus. Это полезно для задач, которые не живут достаточно долго, чтобы быть опрошенными Prometheus напрямую.

Как это работает

  1. Отправка метрик в 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.
  2. Хранение и предоставление метрик: Pushgateway хранит полученные метрики и предоставляет их в формате, который может быть опрошен Prometheus. Это позволяет Prometheus собирать метрики, как если бы они были предоставлены обычным экспортером.

  3. Сбор метрик Prometheus: Prometheus конфигурируется для опроса Pushgateway, как если бы это был обычный экспортер. Метрики, собранные из Pushgateway, затем могут быть использованы для построения графиков, создания алертов и других задач мониторинга.

Применение

Prometheus Pushgateway полезен в сценариях, где:

  • Задания краткосрочны и не могут быть опрошены Prometheus напрямую.
  • Необходимо сохранить состояние метрик между запусками заданий.
  • Требуется агрегировать метрики от множества краткосрочных заданий в одном месте.

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

Тема: Мониторинг / Логи / Observability
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки