6.1. Файл конфигурации #

Главный файл конфигурации находится в /etc/pgpro-otel-collector/basic.yml и используется по умолчанию. Он состоит из следующих основных секций:

Секции можно размещать в произвольном порядке. На верхнем уровне структура файла конфигурации выглядит следующим образом:

receivers:
  # Секция для указания ресиверов, ответственных за сбор данных
processors:
  # Секция для указания процессоров, ответственных за промежуточную обработку данных
exporters:
  # Секция для указания экспортёров, ответственных за отправку данных
service:
  pipelines:
    # Секция для указания конвейеров от начала сбора данных до их передачи

В зависимости от целей администратора файл конфигурации может быть дополнен следующими компонентами и их параметрами:

Помимо этого, все добавленные компоненты нужно выстроить в конвейер в секции service.pipelines.

На более детальном уровне структура файла конфигурации выглядит следующим образом:

exporters:
  otlphttp/logs:
    # Настройка экспортёра otlphttp для отправки журналов
  otlphttp/metrics:
    # Настройка экспортёра otlphttp для отправки метрик
  prometheus:
    # Настройка экспортёра prometheus для публикации метрик
processors:
  attributes/convert:
    # Настройка процессора attributes для обработки записей журнала
  resource:
    # Настройка процессора resource для обработки записей журнала
receivers:
  postgrespro:
    # Настройка ресивера для сбора метрик экземпляра СУБД
  filelog:
    # Настройка ресивера для сбора журналов
  hostmetrics:
    # Настройка ресивера для сбора метрик операционной системы
  journald:
    # Настройка ресивера для сбора записей журнала systemd
service:
  extensions: []
  pipelines:
    # Конвейер сбора, обработки и передачи журналов
    logs:
      receivers:
        - filelog
        - journald
      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:
  # Используется два экземпляра экспортёра `otlphttp` для отправки данных в разные пункты назначения
  otlphttp/logs_elastic:
    endpoint: https://elastic.example.org
  otlphttp/logs_ppem:
    endpoint: https://ppem.example.org
service:
  extensions: []
  pipelines:
    logs:
      receivers:
        # ...
      processors:
        # ...
      # После сбора и обработки записей журнала отправка осуществляется по двум направлениям
      exporters:
        - otlphttp/logs_elastic
        - otlphttp/logs_ppem

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

В каталоге /usr/share/doc/pgpro-otel-collector/examples находятся дополнительные файлы конфигурации, которые можно использовать для расширения функциональности коллектора. Особое внимание стоит уделить настройке ресивера postgrespro: он поддерживает широкий спектр возможностей для сбора данных, но в конфигурации по умолчанию включён только минимальный набор, а большинство плагинов отключено. Прежде чем включать какие-либо плагины, убедитесь, что статистика доступна на стороне экземпляра БД.

Предупреждение

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