6.2. Работа с метриками #
В этом разделе описаны шаги, необходимые для работы с метриками.
6.2.1. Добавление и настройка ресивера postgrespro
#
Для сбора метрик с экземпляра СУБД добавьте ресивер postgrespro
в секцию receivers
и настройте его.
Обязательная настройка:
Укажите параметры подключения к экземпляру базы данных.
Укажите список плагинов для сбора данных.
Дополнительная настройка:
Параметры сбора: параллелизм, задержка, интервал.
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 locks: enabled: true version: enabled: true wal: enabled: true cache: enabled: true
Некоторые плагины имеют дополнительные параметры конфигурации. Например, плагины сбора метрик по объектам СУБД (табличные пространства, базы данных, таблицы, индексы) могут настраиваться так, чтобы сбор осуществлялся по ограниченному числу объектов, позволяя таким образом управлять сбором и регулировать нагрузку на экземпляр СУБД и объём данных, отправляемых по конвейеру в экспортёр. Подробное описание параметров конфигурации по каждому плагину можно найти в примерах конфигурации в каталоге /usr/share/doc/pgpro-otel-collector/examples
.
Ресивер также поддерживает работу через Unix-сокеты, если конечная точка определена, как показано ниже.
receivers: postgrespro: ... transport: unix endpoint: /tmp:5432 # or 'tmp:5432' ...
6.2.2. Добавление и настройка ресивера hostmetrics
#
Ресивер hostmetrics
является открытым компонентом OpenTelemetry и используется для сбора метрик операционной системы. Подробную информацию о нём можно получить здесь.
Для настройки ресивера hostmetrics
достаточно перечислить список плагинов (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
6.2.3. Добавление и настройка экспортёра prometheus
#
Экспортёр prometheus
является открытым компонентом OpenTelemetry. Подробную информацию о нём можно получить здесь.
prometheus
наиболее прост в использовании — он не требует обязательной настройки внешних компонентов и может быть включён по умолчанию. Для настройки достаточно указать адрес для прослушивания входящих запросов:
exporters: prometheus: endpoint: "1.2.3.4:8889" send_timestamps: true
6.2.4. Добавление и настройка экспортёра otlphttp
#
Экспортёр otlphttp
является открытым компонентом OpenTelemetry и используется для отправки собранных журналов в OTLP-совместимую систему хранения или мониторинга, которая предварительно должна быть развёрнута и доступна. Подробную информацию о нём можно получить здесь.
Для настройки экспортёра otlphttp
достаточно указать адрес целевой системы, куда следует отправить данные:
exporters: otlphttp: endpoint: https://otlp.example.org
6.2.5. Настройка конвейера #
После того как ресиверы, процессоры и экспортёры добавлены и настроены, нужно объединить их в конвейер. Конвейер настраивается в секции service
. Состав конвейера напрямую зависит от предварительно добавленных компонентов (не существует конфигурации по умолчанию).
В примере ниже показано, как настроить конвейер для работы с метриками. Данные собираются ресиверами postgrespro
и hostmetrics
, обрабатываются процессором batch
и экспортируются prometheus
и otlphttp
.
Таким образом, все компоненты, используемые в конвейере, также должны быть добавлены в файл конфигурации и настроены.
service: extensions: [] pipelines: metrics: receivers: - postgrespro - hostmetrics processors: - batch exporters: - prometheus - otlphttp