Настройка работы с метриками

Для настройки работы с метриками нужно:

  • добавить и настроить ресивер postgrespro и hostmetrics (опционально);
  • добавить и настроить экспортеры: prometheus и/или otlphttp;
  • объединить ресивер и экспортер в конвейер.

Добавление и настройка ресивера postgrespro

Для сбора метрик с экземпляра СУБД, в секции receivers нужно добавить ресивер postgrespro и описать его настройку.

Обязательные настройки:

  • Указать параметры подключения к экземпляру.
  • Перечислить список модулей для сбора данных.

Вспомогательные настройки:

  • Параметры сбора: параллелизм, задержка, интервал.
receivers:
  postgrespro:
    max_threads: 3
    collection_interval: 60s
    initial_delay: 1s
    transport: tcp
    endpoint: localhost:5432
    database: postgres
    username: postgres
    password: ${env:POSTGRESQL_PASSWORD}
    metrics: null
    plugins:
      activity:
        enabled: true
      bgwriter:
        enabled: true
      databases:
        enabled: true
      io:
        enabled: true
      version:
        enabled: true
      wal:
        enabled: true

Некоторые модули имеют дополнительные параметры настройки. Например, модули сбора метрик по объектам СУБД (табличные пространства, базы данных, таблицы, индексы) могут настраиваться так, чтобы сбор осуществлялся по ограниченному числу объектов, позволяя таким образом управлять сбором и регулировать нагрузку на экземпляр СУБД и объем данных отправляемых по конвейеру в экспортер. Подробное описание настроек по каждому модулю можно найти в примерах конфигурации в /usr/share/doc/pgpro-otel-collector/examples.

Добавление и настройка ресивера hostmetrics

Ресивер hostmetrics является открытым компонентом OpenTelemetry, подробную информацию о ресивере можно получить тут.

Коллектор использует ресивер hostmetrics для сбора метрик операционной системы. Ресивер hostmetrics нужно добавить в секцию receivers и описать его настройку.

Для настройки достаточно перечислить список модулей (scrapers) для сбора данных. Также доступны настройки сбора: задержка и интервал.

Некоторые модули также имеют дополнительные настройки.

receivers:
  hostmetrics:
    collection_interval: 60s
    initial_delay: 1s
    scrapers:
      cpu:
        metrics:
          system.cpu.utilization:
            enabled: true
      disk: null
      load: null
      memory: null
      network: null

Добавление и настройка экспортера prometheus

Экспортер prometheus является открытым компонентом OpenTelemetry, подробную информацию о ресивере можно получить тут. Экспортер prometheus является наиболее простым в использовании. Экспортер не требует обязательной настройки внешних компонентов и может быть включен по умолчанию.

Для настройки достаточно указать адрес для прослушивания на предмет входящих запросов:

exporters:
  prometheus:
    endpoint: "1.2.3.4:8889"
    send_timestamps: true

Добавление и настройка экспортера otlphttp

Экспортер otlphttp является открытым компонентом OpenTelemetry, подробную информацию о ресивере можно получить тут. Экспортер otlphttp используется для отправки собранных метрик в OTLP-совместимую систему хранения или мониторинга которая предварительно должна быть развернута и доступна.

Для настройки достаточно указать адрес целевой системы куда следует отправить данные:

exporters:
  otlphttp:
    endpoint: https://otlp.example.org

Настройка конвейера

После того как ресиверы и экспортеры добавлены и настроены, нужно объединить в конвейер. Настройка конвейера осуществляется в секции service. Состав конвейера всегда напрямую зависит от предварительно добавленных компонентов (не существует универсальной конфигурации по умолчанию).

В примере ниже выполнена настройка конвейера для работы с метриками. Сбор данных осуществляется ресиверами postgrespro и hostmetrics, затем данные проходят обработку через процессор batch, затем уходят на отправку в экспортеры prometheus и otlphttp.

Таким образом все компоненты используемые в конвейере, также должны быть добавлены в конфигурацию и настроены.

service:
  extensions: []
  pipelines:
    metrics:
      receivers:
        - postgrespro
        - hostmetrics
      processors:
        - batch
      exporters:
        - prometheus
        - otlphttp