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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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