Файл конфигурации
Главный файл конфигурации находится в /etc/pgpro-otel-collector/basic.yml
и используется по умолчанию. Конфигурация состоит из нескольких основных секций:
- настройки ресиверов
- настройки процессоров
- настройки экспортеров
- настройки конвейеров
- прочие и опциональные настройки
Секции можно размещать в произвольном порядке. В поверхностном приближении структура файла конфигурации выглядит следующим образом.
receivers:
# Секция для описания ресиверов, ответственных за сбор данных.
processors:
# Секция для описания процессоров данных, ответственных за промежуточную обработку данных.
exporters:
# Секция для описания экспортеров данных, ответственных за отправку данных.
service:
pipelines:
# Секция для описания конвейеров от начала сбора до отправки.
В зависимости от целей преследуемых администратором файл конфигурации может наполняться компонентами и их настройками:
- Для сбора метрик PostgreSQL нужно добавить и настроить ресивер
postgrespro
. - Для сбора журналов PostgreSQL нужно добавить и настроить ресивер
filelog
, дополнительно нужно настроить процессорыresource
иattributes
. - Для сбора метрик операционной системы нужно добавить и настроить ресивер
hostmetrics
. - Для отправки данных в OTLP-совместимое хранилище, нужно добавить и настроить экспортер
otlphttp
. - Для публикации данных в формате совместимом с Prometheus, нужно добавить и настроить экспортер
prometheus
.
Более того все добавленные компоненты нужно выстроить в конвейер в секции service.pipelines
.
В более детальном приближении структура файла конфигурации выглядит так:
exporters:
otlphttp/logs:
# Настройка экспортера OTLPHTTP, для отправки журналов.
otlphttp/metrics:
# Настройка экспортера OTLPHTTP, для отправки метрик.
prometheus:
# Настройка экспортера Prometheus, для публикации метрик.
processors:
attributes/convert:
# Настройка процессора attributes (для обработки записей журнала).
resource:
# Настройка процессора resource (для обработки записей журнала).
receivers:
postgrespro:
# Настройка ресивера для сбора метрик экземпляра СУБД.
filelog:
# Настройка ресивера для сбора журналов.
hostmetrics:
# Настройка ресивера для сбора метрик операционной системы.
service:
extensions: []
pipelines:
# Конвейер сбора, обработки и отправки журналов.
logs:
receivers:
- filelog
processors:
- resource
- attributes/convert
exporters:
- otlphttp/logs
# Конвейер сбора, обработки и отправки метрик.
metrics:
receivers:
- postgrespro
- hostmetrics
processors:
exporters:
- prometheus
- otlphttp/metrics
Архитектура OpenTelemetry Collector позволяет использовать один и тот же компонент несколько раз. Например, можно добавить несколько экземпляров ресивера postgrespro
и настроить сбор метрик с нескольких экземпляров СУБД. Или использовать несколько экземпляров экспортера otlphttp
для отправки как метрик так и логов в разные хранилища данных, добиваясь тем самым, разветвления потоков данных.
Для указания нескольких экземпляров компонентов следует использовать нотацию КОМПОНЕНТ/ИМЯ
, где:
- КОМПОНЕНТ - название компонента: ресивера, процессора или экспортера.
- ИМЯ - дополнительное произвольное имя.
За счет пар КОМПОНЕНТ/ИМЯ, формируются уникальные идентификаторы компонентов, которые дальше используются в составе конвейеров. Например, otlphttp/logs_main, postgrespro/primary, postgrespro/standby и т.п.
Пример использования нескольких экземпляров одного и того же компонента:
receivers:
# ...
processors:
# ...
exporters:
# Используется 2 экземпляра экспортера OTLPHTTP для отправки данных в разные пункты назначения.
otlphttp/logs_elastic:
endpoint: https://elastic.example.org
otlphttp/logs_ppem:
endpoint: https://ppem.example.org
service:
extensions: []
pipelines:
logs:
receivers:
# ...
processors:
# ...
# После сбора и обработки записей журнала, отправка осуществляется 2 направления.
exporters:
- otlphttp/logs_elastic
- otlphttp/logs_ppem
Таким образом наполняя файл конфигурации можно гибко определять параметры сбора, обработки и отправки данных.
В каталоге /usr/share/doc/pgpro-otel-collector/examples
находятся дополнительные файлы конфигурации для включения различной функциональности, которые можно использовать при настройке коллектора. Отдельно стоит отметить настройку ресивера postgrespro
- ресивер содержит широкие возможности по сбору данных и в конфигурации по умолчанию ограничен некоторым минимальным сбором и большая часть модулей ресивера выключена. Прежде чем включать какие-либо модули, убедитесь, что статистика доступна на стороне экземпляра БД и помните включение дополнительных модулей несет накладные расходы и может привести к высоким издержкам (стоимость сбора данных), поэтому включение модулей должно быть тщательно продумано.