Главный файл конфигурации находится в
/etc/pgpro-otel-collector/basic.yml и используется по
умолчанию. Конфигурация состоит из нескольких основных секций:
Секции можно размещать в произвольном порядке. В поверхностном приближении структура файла конфигурации выглядит следующим образом.
receivers:
# Секция для описания ресиверов, ответственных за сбор данных.
processors:
# Секция для описания процессоров данных, ответственных за промежуточную обработку данных.
exporters:
# Секция для описания экспортеров данных, ответственных за отправку данных.
service:
pipelines:
# Секция для описания конвейеров от начала сбора до отправки.В зависимости от целей преследуемых администратором файл конфигурации может наполняться компонентами и их настройками:
postgrespro.filelog, дополнительно нужно настроить процессоры
resource и attributes.hostmetrics.otlphttp.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 -
ресивер содержит широкие возможности по сбору данных и в конфигурации по
умолчанию ограничен некоторым минимальным сбором и большая часть модулей
ресивера выключена. Прежде чем включать какие-либо модули, убедитесь,
что статистика доступна на стороне экземпляра БД и помните включение
дополнительных модулей несет накладные расходы и может привести к
высоким издержкам (стоимость сбора данных), поэтому включение модулей
должно быть тщательно продумано.