Глава 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.