7.1. Ресиверы #
7.1.1. postgrespro
#
Ресивер postgrespro
— главный компонент коллектора, заключающий в себе все инструменты (встроенные плагины) для сбора данных с экземпляра СУБД. Данный ресивер является внутренней разработкой компании Postgres Pro и не является частью открытой экосистемы OpenTelemetry.
Ресивер организован по модульному принципу и позволяет регулировать объём собираемых данных через включение плагинов. Некоторые плагины предусматривают дополнительную настройку.
Плагины — это внутренние компоненты ресивера, отвечающие за сбор разных типов статистических данных. Каждый плагин предназначен для сбора конкретной информации, которая затем преобразуется в группы метрик.
pgpro-otel-collector предоставляет группы метрик, описывающие различные подсистемы, события и процессы внутри системы управления базами данных (СУБД), такие как использование таблиц и индексов, работа фоновых процессов, использование ресурсов запросами и т. д.
Количество статистических данных может варьироваться в зависимости от версии и редакции Postgres Pro, что ведёт к большой вариативности и сложности методов сбора. Ещё одна важная роль pgpro-otel-collector — скрывать эти отличия от систем мониторинга, в то же время предоставляя максимум информации о базе данных.
Ресивер postgrespro
содержит следующие плагины:
activity извлекает информацию об общей активности в экземпляре из представления pg_stat_activity.
archiver извлекает статистику архивирования журнала предзаписи (WAL) из представления pg_stat_archiver.
bgwriter извлекает статистику процессов фоновой записи и контрольных точек из представления pg_stat_bgwriter.
bloat_indexes извлекает информацию о раздувании индексов.
bloat_tables извлекает информацию о раздувании таблиц.
buffercache отслеживает использование общего кеша (требуется расширение pg_buffercache).
cfs отслеживает использование CFS (Compressed File System, сжатая файловая система) (доступно только в Postgres Pro Enterprise).
databases извлекает статистику использования баз данных из представления pg_stat_database.
functions извлекает статистику применения пользовательских функций из представления pg_stat_user_functions.
indexes извлекает статистику использования индексов из представлений pg_stat_user_indexes и pg_statio_user_indexes.
io собирает метрики ввода/вывода (I/O) из представления pg_stat_io.
locks извлекает информацию о состояниях блокировки и ожидания из представления pg_locks.
prepared_transactions извлекает статистику подготовленных транзакций из представления pg_prepared_xacts.
replication извлекает метрики о ведомых узлах и потоковой репликации из представлений pg_stat_replication и pg_stat_wal_receiver.
replication_slots извлекает статистику использования слотов репликации из представления pg_replication_slots.
statements_generic собирает общую статистику по операторам из представления pg_stat_statements.
statements_timing собирает статистику по времени выполнения операторов из представления pg_stat_statements.
statements_planning собирает статистику по времени планирования операторов из представления pg_stat_statements.
statements_shared_io собирает статистику по использованию общего кеша операторами из представления pg_stat_statements.
statements_local_io собирает статистику использования локального кеша операторами из представления pg_stat_statements.
statements_temp_io собирает статистику использования временных файлов операторами из представления pg_stat_statements.
statements_wal собирает статистику по количеству записей в WAL, вносимых операторами, из представления pg_stat_statements.
statements_jit собирает статистику по использованию JIT-компилятора операторами из представления pg_stat_statements.
statements_queries извлекает информацию о текстах запросов из представления pg_stat_statements.
tables извлекает статистику по использованию таблиц из представлений pg_stat_user_tables и pg_statio_user_tables.
tablespaces извлекает статистику по использованию табличных пространств.
version извлекает метрики с информацией о версии Postgres Pro.
wait_sampling извлекает метрики на основе выборки по событиям ожидания (требуется расширение pg_wait_sampling).
wal извлекает статистику по количеству записей в WAL, вносимых экземпляром.
Предупреждение
⚠️ ВАЖНО! Включение дополнительных плагинов может создавать высокую нагрузку на экземпляр СУБД, поэтому должно быть тщательно продумано.
Следующие плагины выключены по умолчанию:
bloat_indexes
иbloat_tables
. Процедура оценки раздувания ресурсоёмкая и в случае большого количества таблиц может создавать избыточную нагрузку. Рекомендуется ограничивать сбор данных отдельными базами данных, схемами или даже таблицами. Кроме того, данные о раздувании изменяются редко и могут содержать погрешности, поэтому рекомендуется устанавливать длительный интервал между сборами данных — например, 5 минут или более.indexes
иtables
. Таблицы и индексы содержат большое количество статистических данных. При наличии множества таблиц и индексов может генерироваться значительный объём метрик, что может привести к проблемам с производительностью при записи в хранилище метрик. Кроме того, не все эти метрики представляют ценность для пользователя. Рекомендуется ограничивать сбор данных, выбирая только определённые базы данных, схемы или таблицы.statements
. В зависимости от нагрузки на экземпляр СУБД, объём статистики по операторам SQL может быть очень большим. Это может привести к генерации значительного количества метрик и нагрузке на запись в хранилище метрик. В силу своей специфичности, статистика операторов не всегда представляет ценность для пользователя. Рекомендуется включать только те плагины, которые действительно полезны в вашем сценарии использования.statements_queries
. В зависимости от длины запросов в статистике операторов, метрики могут вызывать значительные накладные расходы при записи и хранении в хранилище метрик. Рекомендуется настроить коллектор для ограничения максимальной длины значений в метриках.
7.1.2. filelog
#
Ресивер filelog
— открытый компонент OpenTelemetry для сбора журналов активности экземпляра СУБД. Коллектор поддерживает сбор журналов в формате CSV и JSON.
7.1.3. hostmetrics
#
Ресивер hostmetrics
— открытый компонент OpenTelemetry для сбора метрик операционной системы (могут потребоваться права root).