3.1. Конфигурация и права доступа #

pgpro-otel-collector имеет следующие ограничения и требования:

  • pgpro-otel-collector должен иметь возможность подключиться к экземпляру Postgres Pro. Параметры подключения задаются в файле конфигурации; при необходимости их можно изменять.

  • Пользователь, от имени которого выполняется подключение к СУБД, должен иметь соответствующие права и доступ к внутренней статистике активности.

  • Для сбора метрик операционной системы с помощью ресивера hostmetrics могут потребоваться привилегированные права доступа (root) в файловую систему procfs. Например, такой доступ требуется для плагина process.

  • Для сбора журналов активности экземпляра СУБД с помощью ресивера filelog требуется доступ к соответствующим каталогам и файлам журналов.

  • Экспортёр prometheus обладает ограниченной масштабируемостью при высоких нагрузках. За подробной информацией об устранении неполадок обратитесь к Разделу 9.3.

  • Процессор memory_limiter начинает сбрасывать данные, если ограничения памяти превышены, что может привести к потере данных и дополнительной нагрузке на процессор. За подробной информацией о связанных с этим проблемах и способах их решения обратитесь к Разделу 9.4.

Перечисленные ниже плагины требуют дополнительной настройки или прав доступа. Обязательно выполните указанные шаги.

Примечание

Все права доступа должны быть предоставлены пользователю, от имени которого работает и собирает метрики pgpro-otel-collector (в данной документации это otelcol). За подробностями о настройке пользователя СУБД обратитесь к Подразделу 6.6.2.1.

  • Для плагина bloat_indexes выполните эту команду во всех целевых базах данных:

    GRANT SELECT ON pg_statistic TO otelcol;
  • В больших базах данных плагины bloat_indexes и bloat_tables могут вызывать значительные задержки отклика при первичном сборе данных. Для решения этой проблемы настройте процесс fetcher для фоновой загрузки данных пакетами нужного размера.

    Пример конфигурации процесса fetcher для bloat_tables:

    bloat_tables:
      enabled: true
      collection_interval: 5m
      fetcher:
        # Следует ли откладывать доступность метрик до завершения первоначальной загрузки данных
        wait_init: false
        # Включить подробное журналирование для отладки
        extended_log_enabled: false
        # Количество записей, выбираемых в каждом пакете
        batch_size: 10000
  • Для плагинов bloat_tables, cfs, tables и indexes выполните следующую команду для всех отслеживаемых схем:

    GRANT USAGE ON SCHEMA имя_схемы TO otelcol;
  • Для buffercache требуется дополнительная настройка:

    1. Установите расширение pg_buffercache, добавив pg_buffercache в переменную shared_preload_libraries в файле postgresql.conf.

    2. Перезапустите сервер СУБД.

    3. Выполните данную команду во всех целевых базах данных:

      CREATE EXTENSION pg_buffercache;
    4. Выполните следующую команду:

      GRANT pg_monitor TO otelcol;
  • Для плагина databases пользователь СУБД должен иметь права на выполнение функций pg_ls_dir и pg_stat_file для всех целевых баз данных, чтобы собирать данные о потерянных файлах:

    GRANT EXECUTE ON FUNCTION pg_ls_dir(text) TO otelcol;
    GRANT EXECUTE ON FUNCTION pg_ls_dir(text,boolean,boolean) TO otelcol;
    GRANT EXECUTE ON FUNCTION pg_stat_file(text) TO otelcol;
  • Для плагина statements_* требуется дополнительная настройка:

    1. Установите расширение pg_stat_statements, добавив pg_stat_statements в переменную shared_preload_libraries в файле postgresql.conf.

    2. Перезапустите сервер СУБД.

    3. Выполните данную команду во всех целевых базах данных:

      CREATE EXTENSION pg_stat_statements;
    4. Выполните следующую команду:

      GRANT pg_monitor TO otelcol;
  • Для плагина tablespaces выполните следующую команду:

    GRANT pg_monitor TO otelcol;
  • Для плагина wait_sampling требуется дополнительная настройка:

    1. Установите расширение pg_wait_sampling, добавив pg_wait_sampling в переменную shared_preload_libraries в файле postgresql.conf.

    2. Перезапустите сервер СУБД.

    3. Выполните данную команду во всех целевых базах данных:

      CREATE EXTENSION pg_wait_sampling;