Ресиверы:
postgresprofileloghostmetricsПроцессоры:
attributesresourcebatchЭкспортеры:
prometheusotlphttpРесивер postgrespro является компонентом
OpenTelemetryCollector и осуществляет сбор данных с экземпляров СУБД.
Ресивер является внутренней разработкой компании PostgresPro и НЕ
является частью открытой экосистемы OpenTelemetry.
Ресивер организован по модульному принципу и позволяет регулировать объем собираемых данных через включение модулей. Некоторые модули предусматривают дополнительную настройку.
Модули — это внутренние компоненты ресивера, отвечающие за сбор
разных типов статистических данных. Каждый модуль предназначен для сбора
конкретной информации, которая затем преобразуется в группы метрик.
pgpro-otel-collector предоставляет группы метрик,
описывающие различные подсистемы, события и процессы внутри системы
управления базами данных (СУБД), такие, как использование таблиц и
индексов, работа фоновых процессов, использование ресурсов запросами и
т. д.
Количество статистических данных может варьироваться в зависимости от
версии и редакции Postgres Pro, что ведёт к большой вариативности и
сложности методов сбора. Ещё одна важная роль
pgpro-otel-collector — скрывать эти отличия от систем
мониторинга, в то же время предоставляя максимум информации о
наблюдаемой системе.
Ресивер postgrespro содержит следующие модули:
pg_buffercache).pg_wait_sampling).Каждый из этих модулей может предоставлять десятки видов метрик. В
зависимости от числа объектов в экземпляре, количество метрик может
исчисляться тысячами. Однако некоторые метрики или даже группы метрик
могут быть не нужны. Поэтому pgpro-otel-collector позволяет
включать и выключать нужные модули, таким образом контролируя количество
и качество собираемых данных.
Важно: включение следующих модулей в некоторых обстоятельствах могут создавать значительную нагрузку на экземпляр СУБД. Модули выключены в конфигурации по умолчанию и их включение должно рассматриваться очень серьезно с должным уровнем ограничения сбора только по необходимым объектам.
bloat_indexes и bloat_tables - процедура
оценки раздувания является ресурсоемкой и в случае большого количества
таблиц может создавать избыточную нагрузку. Рекомендуется ограничивать
сбор данных отдельными базами данных, схемами или даже таблицами. Также,
данные о раздувании изменяются редко и их точность допускает некоторую
погрешность, поэтому рекомендуется устанавливать длинный интервал между
сборами данных, например 5 минут и более.indexes и tables - таблицы и индексы
содержат большое количество статистики и при большом количестве таблиц и
индексов может генерироваться большое количество метрик - запись такого
объема в хранилище метрик может вызвать проблемы производительности и не
все эти метрики могут иметь конечную пользовательскую ценность.
Рекомендуется ограничивать сбор данных отдельными базами данных, схемами
или даже таблицами.statements - в зависимости от нагрузки на экземпляр
СУБД статистики по операторам может быть очень много, это может привести
к генерации большого количества метрик и нагрузке на запись в хранилище
метрик. В силу специфичности статистики операторов она не всегда может
иметь достаточную пользовательскую ценность. Рекомендуется включать
только те модули которые действительно представляют ценность в вашем
случае.statements_queries - в зависимости от длины текстов
запросов в статистике операторов метрики могут быть иметь большие
накладные расход при записи и хранении в хранилище метрик. Рекомендуется
настройками коллектора ограничивать максимальную длину значений в
метриках.Ресивер filelog является открытым компонентом
OpenTelemetry, подробную информацию о ресивере можно получить тут.
Коллектор использует ресивер filelog для сбора журналов
экземпляра СУБД - для этого нужно добавить ресивер filelog
в секцию receivers и описать его настройку.
Настройка ресивера зависит от настроек экземпляра СУБД и
используемого формата журнала (см. параметры
logging_collector и log_destination).
Коллектор поддерживает сбор журналов в формате CSV и JSON.
Ресивер hostmetrics является открытым компонентом
OpenTelemetry, подробную информацию о ресивере можно получить тут.
Коллектор использует ресивер hostmetrics для сбора
метрик операционной системы - для этого нужно добавить ресивер
hostmetrics в секцию receivers и описать его
настройку.
Процессор attributes является открытым компонентом
OpenTelemetry, подробную информацию о процессоре attributes
можно получить тут.
Процессор attributes используется для обработки
отдельных атрибутов записей журнала. Процессор нужно добавить в секцию
processors и описать его настройку.
Настройка процессора также зависит от настроек экземпляра СУБД и
используемого формата журнала (см. параметры
logging_collector и log_destination).
Процессор resource является открытым компонентом
OpenTelemetry, подробную информацию о процессоре resource
можно получить тут.
Процессор resource используется для добавления
дополнительных атрибутов записей журнала. Процессор нужно добавить в
секцию processors и описать его настройку.
Настройка процессора также зависит от настроек экземпляра СУБД и
используемого формата журнала (см. параметры
logging_collector и log_destination).
Процессор batch является открытым компонентом
OpenTelemetry, подробную информацию о процессоре batch
можно получить тут.
Процессор batch используется для формирования пакетов
данных и регулировки механизма отправки данных. Процессор нужно добавить
в секцию processors и описать его настройку.
Экспортер prometheus является открытым компонентом
OpenTelemetry, подробную информацию о ресивере можно получить тут.
Экспортер prometheus является наиболее простым в
использовании. Экспортер не требует обязательной настройки внешних
компонентов и может быть включен по умолчанию. Экспортер нужно добавить
в секцию exporters и описать его настройку.
Экспортер otlphttp является открытым компонентом
OpenTelemetry, подробную информацию о ресивере можно получить тут.
Экспортер otlphttp используется для отправки собранных
метрик в OTLP-совместимую систему хранения или мониторинга которая
предварительно должна быть развернута и доступна. Экспортер нужно
добавить в секцию exporters и описать его настройку.