PostgreSQL Performance Metrics
Общие сведения
Название плагина: postgreSqlPlugin
Ссылка для загрузки плагина: скачать
Описание:
Данный плагин позволяет собрать метрики с СУБД PostgreSQL
Формат сценария задания потока данных
name: PostgreSQL Performance Metrics
jobs:
  - name: PostgreSQL Performance Metrics
    steps:
      - plugin: postgreSqlPerformanceMetrics
        with:
          streamId: $.vars.stream.id
          streamKey: $.vars.stream.key
          # Адрес для подключения к серверу PostgreSQL
          host: <string>
          # Порт для подключения к серверу PostgreSQL. По умолчанию 5432
          port: <integer>
          # Опционально. По умолчанию Prefer. Допустимые значения Disable, Allow, Prefer, Require, VerifyCA, VerifyFull
          # Подробнее см. в документации https://www.postgresql.org/docs/current/libpq-ssl.html
          sslMode: <string>
          # Опционально. Имя базы данных для подключения. По умолчанию postgres
          dbname: <string>
          # Опционально. Можно указать собираемые метрики. По умолчанию содержит все метрики.
          metrics:
            - pg_mon_stat_database_blks_read
            - pg_mon_stat_database_blks_hit
            - pg_mon_stat_activity_max_tx_duration
          # Опционально. Список ключ-значение для их статичной записи в формируемую метрику. По умолчанию пустой список.
          labels:
            label1: Label1_Value
            label2: Label2_Value
            label3: Label3_Value
          # Допустимые значения для LogLevel: trace, debug, information, warning, error, critical, none
          # Опционально. Уровень логирования выполнения заданий, отправляющихся в коллектор событий. По умолчанию error.
          consoleSyncLogLevel: trace
          # Опционально. Таймаут запроса на получение метрик. По умолчанию 10 секунд
          scrapeTimeout: <string>
          # Опционально. Таймаут для запросов на отправку метрик в коллектор Monq. По умолчанию 30 секунд
          writeTimeout: <string>
          # Опционально. Задержка начальной повторной попытки отправки метрик. Удваивается при каждой повторной попытке. По умолчанию 30 миллисекунд
          writeMinBackoff: <string>
          # Опционально. Максимальная задержка повтора. По умолчанию 5 секунд
          writeMaxBackoff: <string>
          # Опционально. Количество метрик, отправляемых в коллектор единоразово. По умолчанию 2000
          maxSamplesPerSend: <integer>
        with-secured:
          username: $.vars.stream.params.username
          password: $.vars.stream.params.password
Параметры конфигурации используемые в сценарии
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Возможные значения | Описание | 
|---|---|---|---|---|---|
| streamId | string | да | - | Любая строка | Идентификатор текущего потока ($.vars.stream.id) | 
| streamKey | string | да | - | Любая строка | API ключ текущего потока ($.vars.stream.key) | 
| username | string | да | - | Любая строка | Логин для подключения к серверу PostgreSQL | 
| password | string | да | - | Любая строка | Пароль для подключения к серверу PostgreSQL | 
| host | string | да | - | Любая строка | Адрес для подключения к серверу PostgreSQL | 
| port | string | опционально | 5432 | От 1 до 65535 | Порт - для подключения к серверу PostgreSQL | 
| sslMode | string | опционально | prefer | disable, allow, prefer, require | disable - SSL не используется для подключения к серверу PostgreSQLallow, prefer, require - режимы SSL для подключения | 
| dbname | string | опционально | postgres | Любая строка | Указывается имя базы данных для подключения | 
| metrics | list[] | опционально | - | Любая строка | Можно указать собираемые метрики. По умолчанию содержит все метрики. | 
| consoleSyncLogLevel | string | опционально | error | none, critical, error, warning, information, debug, trace | Параметр, определяющий уровень логирования выполнения заданий, выводящихся в лог работы агента. | 
| scrapeTimeout | string | опционально | 10s | Число+ms/s | Таймаут запроса на получение метрик | 
| writeTimeout | string | опционально | 30s | Число+ms/s | Таймаут для запроса отправки метрик в коллектор Monq | 
| writeMinBackoff | string | опционально | 30ms | Число+ms/s | Задержка начальной повторной попытки отправки метрик. Удваивается при каждой повторной попытке | 
| writeMaxBackoff | string | опционально | 5s | Число+ms/s | Максимальная задержка повтора | 
| maxSamplesPerSend | integer | опционально | 2000 | От 1 до 65535 | Количество метрик, отправляемых в коллектор единоразово | 
| labels | list[] | опционально | - | Любая строка | Перечисление меток, добавляемых к полученной метрике. По умолчанию пустой список | 
Собираемые метрики
| Метрика | Тип | Описание (на русском) | 
|---|---|---|
| pg_mon_up | gauge | Удалось ли последнему сбору метрик из PostgreSQL подключиться к серверу | 
| pg_mon_locks_count | gauge | Количество блокировок | 
| pg_mon_stat_activity_count | gauge | Общее количество активных подключений к PostgreSQL | 
| pg_mon_postmaster_start_time_seconds | gauge | Время запуска postmaster | 
| pg_mon_stat_database_deadlocks | gauge | Количество обнаруженных взаимных блокировок в этой базе данных | 
| pg_mon_stat_database_blks_hit | counter | Количество раз, когда блоки диска уже находились в буферном кэше, поэтому чтение не требовалось (это включает только попадания в буферный кэш PostgreSQL, а не файловой системы ОС) | 
| pg_mon_stat_database_blks_read | counter | Количество прочитанных блоков диска в этой базе данных | 
| pg_mon_stat_activity_max_tx_duration | gauge | Максимальная продолжительность в секундах, в течение которой выполняется любая активная транзакция | 
| pg_mon_replication_lag | gauge | Задержка репликации от мастера в секундах | 
| pg_mon_database_size_bytes | gauge | Используемое дисковое пространство базой данных в байтах | 
Пример сценария задания на получение метрик
name: PostgreSQL Performance Metrics
jobs:
  - name: PostgreSQL Performance Metrics
    steps:
      - plugin: postgreSqlPerformanceMetrics
        with:
          streamId: $.vars.stream.id
          streamKey: $.vars.stream.key
          host: 10.25.0.10
          sslMode: prefer
          labels:
            label1: Label1_Value
          consoleSyncLogLevel: debug
          maxSamplesPerSend: 500
        with-secured:
          username: $.vars.stream.params.username
          password: $.vars.stream.params.password