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

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

  • Параметры ресиверов

  • Параметры процессоров

  • Параметры экспортёров

  • Параметры конвейеров

  • Дополнительные и необязательные параметры

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

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

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

  • ресивер postgrespro для сбора метрик Postgres Pro

  • ресивер filelog и процессоры resource и attributes для сбора журналов Postgres Pro

  • ресивер journald и процессоры resource, attributes, batch и transform для сбора журналов из systemd

  • ресивер hostmetrics для сбора метрик операционной системы

  • экспортёр otlphttp для отправки данных в OTLP-совместимое хранилище

  • экспортёр prometheus для публикации данных в формате, совместимом с Prometheus

  • экспортёр kafka для отправки журналов и метрик в Apache Kafka

Помимо этого, все добавленные компоненты нужно выстроить в конвейер в секции 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: он поддерживает широкий спектр возможностей для сбора данных, но в конфигурации по умолчанию включён только минимальный набор, а большинство плагинов отключено. Прежде чем включать какие-либо плагины, убедитесь, что статистика доступна на стороне экземпляра БД.

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

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