Глава 2. Архитектура

pgpro-otel-collector основан на архитектуре OpenTelemetry Collector и состоит из нескольких компонентов, которые взаимодействуют друг с другом по конвейерному принципу (сбор — обработка — отправка):

  • Ресиверы — ключевые компоненты, отвечающие за сбор данных. pgpro-otel-collector включает следующие ресиверы:

    • postgrespro — главный компонент коллектора, заключающий в себе все инструменты (встроенные плагины) для сбора данных с экземпляра БД.

    • filelog — вспомогательный ресивер, отвечающий за сбор информации из журналов активности БД.

    • hostmetrics — вспомогательный ресивер для сбора информации из операционной системы. Могут потребоваться права root.

    • journald — вспомогательный ресивер, который собирает записи журнала systemd.

  • Процессоры принимают и обрабатывают данные от ресиверов. pgpro-otel-collector включает следующие процессоры:

    • attributes обрабатывает отдельные атрибуты записей журнала.

    • resource добавляет дополнительные атрибуты записей журнала.

    • batch формирует пакеты данных и регулирует механизм отправки данных.

    • transform изменяет данные с помощью языка преобразований OpenTelemetry (OTTL).

    • memory_limiter ограничивает потребление памяти pgpro-otel-collector.

    • filter позволяет фильтровать метрики и журналы на основе заданных условий с использованием OTTL.

  • Экспортёры получают обработанные данные от процессоров и доставляют их внешним потребителям. pgpro-otel-collector включает следующие экспортёры:

    • otlphttp экспортирует и отправляет данные по протоколу OTLP (стандартный протокол OpenTelemetry, внедряемый многими поставщиками систем мониторинга) с использованием протокола HTTP.

    • prometheus экспортирует метрики по встроенному HTTP-серверу и публикует их на странице /metrics в формате системы мониторинга Prometheus. prometheus используется по умолчанию, так как не требует дополнительной настройки.

    • kafka отправляет метрики и журналы в Apache Kafka, распределённую платформу с открытым исходным кодом для потоковой передачи событий.

    • zabbix отправляет метрики в Zabbix — решение для мониторинга с открытым исходным кодом.

Согласно общей архитектуре OpenTelemetry Collector, pgpro-otel-collector можно настроить таким образом, чтобы один и тот же компонент использовался несколько раз. Например, можно использовать несколько экземпляров одного и того же ресивера для сбора данных с нескольких экземпляров СУБД. Также один и тот же экспортёр может использоваться для отправки данных в разные хранилища.

За подробным описанием каждого компонента обратитесь к Главе 7.