Глава 2. Архитектура
pgpro-otel-collector основан на архитектуре OpenTelemetry Collector и состоит из нескольких компонентов, которые взаимодействуют друг с другом по конвейерному принципу (сбор — обработка — отправка):
Ресиверы — ключевые компоненты, отвечающие за сбор данных. pgpro-otel-collector включает следующие ресиверы:
postgrespro— главный компонент коллектора, заключающий в себе все инструменты (встроенные плагины) для сбора данных с экземпляра БД.filelog— вспомогательный ресивер, отвечающий за сбор информации из журналов активности БД.hostmetrics— вспомогательный ресивер для сбора информации из операционной системы. Могут потребоваться права root.
Процессоры принимают и обрабатывают данные от ресиверов. pgpro-otel-collector включает следующие процессоры:
attributesобрабатывает отдельные атрибуты записей журнала.resourceдобавляет дополнительные атрибуты записей журнала.batchформирует пакеты данных и регулирует механизм отправки данных.
Экспортёры получают обработанные данные от процессоров и доставляют их внешним потребителям. pgpro-otel-collector включает следующие экспортёры:
otlphttpэкспортирует и отправляет данные по протоколу OTLP (стандартный протокол OpenTelemetry, внедряемый многими поставщиками систем мониторинга) с использованием протокола HTTP.prometheusэкспортирует метрики по встроенному HTTP-серверу и публикует их на странице/metricsв формате системы мониторинга Prometheus.prometheusиспользуется по умолчанию, так как не требует дополнительной настройки.
Согласно общей архитектуре OpenTelemetry Collector, pgpro-otel-collector можно настроить таким образом, чтобы один и тот же компонент использовался несколько раз. Например, можно использовать несколько экземпляров одного и того же ресивера для сбора данных с нескольких экземпляров СУБД. Также один и тот же экспортёр может использоваться для отправки данных в разные хранилища.