PostgresDB (remote monitoring)
Контролируйте производительность Postgres с помощью нашей новой платформы расширений EF2.0.
Обзор
Наше решение для мониторинга базы данных Postgres основано на подходе удаленного мониторинга, реализованном в виде расширения АктивныйШлюз Ключ-АСТРОМ. Расширение запрашивает базы данных Postgres для определения ключевой производительности и работоспособности. Собираемые метрики включают данные из таблиц pg_stat, wal_pg_stat и других. Затем система ИИ от Ключ-АСТРОМ анализирует эти показатели, чтобы обеспечить анализ аномалий и проблем.
Начало
Создайте пользователя базы данных, используя следующий шаблон:
CREATE USER astromkey With PASSWORD ' <PASSWORD> ' INHERIT;
GRANT pg_monitor TO astromkey;
Чтобы собирать метрики WAL, у пользователя должна быть superuserроль.
ALTER USER astromkey WITH SUPERUSER;
Между АктивнымШлюзом, на котором развернуто расширение, и базой данных Postgres должно быть установлено соединение.
Активируйте расширение в своей среде с помощью встроенного концентратора продукта, предоставьте необходимую конфигурацию устройства, и все готово.
Перейдите на обзорную панель Postgres, чтобы просмотреть метрики и объекты.
Это расширение записывает информацию на уровне экземпляра и уровне базы данных.
Случаи использования
Расширение предназначено для пользователей, которые:
- Хотели бы следить за состоянием работоспособности и производительностью своих баз данных Postgres.
Расширение позволяет вам:
- Осуществлять мониторинг инфраструктуры с помощью комплексной информационной панели
- Обнаруживать аномалии траффика и предупреждать о них
- Принять упреждающие меры, чтобы избежать ухудшения качества обслуживания.
Информация о совместимости
Для этого расширения требуется АктивныйШлюз версии 1.259 минимум
Postgres 14 или выше для всех метрик
Postgres 10 или выше для всех метрик, за исключением таблицы pg_stat_wall.
В версии 9.6 отмените выбор набора функций сеансов, поскольку информация о сеансе не существует.
Расширение не будет работать на версиях старше 9.6.
Расширение не распространяется на данные, специфичные для облака, такие как сеть, активность виртуальных машин и т. д. Возможно, потребуется изменить привилегии, чтобы разрешить SELECT для следующих таблиц:
- pg_stat_bgwriter
- pg_stat_database
- pg_stat_activity
- pg_tablespace
- pg_stat_wal (доступно только с версии 14, для более старых версий отмените выбор набора функций)
Содержание расширения
| Тип содержимого | Количество включенных предметов |
|---|---|
| Generic Relationship | 3 |
| Screen Layout | 2 |
| Alerts | 1 |
| Screen Actions | 4 |
| Metric Metadata | 48 |
| Screen Entities Lists | 5 |
| Dashboards | 1 |
| List Screen Layout | 2 |
| Generic Type | 3 |
| Screen Chart Groups | 9 |
Наборы функций
Ниже приведен полный список наборов функций, представленных в этой версии. Чтобы обеспечить соответствие вашим потребностям, отдельные метрики могут быть активированы и деактивированы вашим администратором во время настройки.
| Наборы функций | Количество включенных показателей | ||
|---|---|---|---|
| Table space | 1 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Table space | postgres.tablespace | Табличное пространство в байтах | Байт |
| Recovery | 1 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Instance recovery mode | postgres.recovery.state | Укажите, находится ли экземпляр в режиме восстановления. | Count |
| Slowest connections | 3 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Slowest idle transaction | postgres.slowest.idle | Самая медленная транзакция в состоянии ожидания | Секунды |
| Slowest active transaction | postgres.slowest.active | Самая медленная транзакция в активном состоянии | Секунды |
| Slowest waiting transaction | postgres.slowest.waiting | Самая медленная транзакция в состоянии ожидания | Секунды |
| pg stat bgwriter | 10 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Checkpoints scheduled performed per minute | postgres.checkpoints_timed.count | Количество выполненных запланированных контрольных точек | Count |
| Checkpoints requested performed per minute | postgres.checkpoints_req.count | Количество запрошенных контрольных точек, которые были выполнены | Count |
| Checkpoints write time | postgres.checkpoint_write_time | Общее количество времени, затраченное на этап обработки контрольной точки, когда файлы записываются на диск. | Милисекунды |
| Checkpoint sync time | postgres.checkpoint_sync_time | Общее количество времени, затраченное на этап обработки контрольной точки, когда файлы синхронизируются с диском. | Милисекунды |
| Buffers checkpoint | postgres.buffers_checkpoint | Количество буферов, записанных во время контрольных точек | Count |
| Buffers write | postgres.buffers_clean | Количество буферов, записанных фоновым записывающим устройством | Count |
| Buffers max clean | postgres.maxwritten_clean | Сколько раз фоновая программа записи останавливала очистку сканирования, поскольку она записала слишком много буферов | Count |
| Buffers write by backend | postgres.buffers_backend | Количество буферов, записываемых непосредственно серверной частью | Count |
| Buffers fsync | postgres.buffers_backend_fsync | Сколько раз серверной части приходилось выполнять собственный вызов fsync (обычно фоновый модуль записи обрабатывает их, даже если серверная часть выполняет собственную запись) | Count |
| Buffers allocated | postgres.buffers_alloc | Количество выделенных буферов | Count |
| Sessions | 3 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Sessions per minute | postgres.sessions.count | Общее количество установленных сессий | Count |
| Sessions abandoned per minute | postgres.sessions_abandoned.count | Количество сеансов базы данных с этой базой данных, которые были прекращены из-за потери соединения с клиентом. | Count |
| Sessions fatal per minute | postgres.sessions_fatal.count | Количество сеансов с этой базой данных, прерванных из-за фатальных ошибок. | Count |
| Pg stat database | 14 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Deadlocks | postgres.deadlocks | Количество тупиков | Count |
| Number of backends | postgres.numbackends | Количество серверов, подключенных в настоящее время к этой базе данных | Count |
| Number of transactions per minute | postgres.xact_commit.count | Количество транзакций в этой базе данных, которые были зафиксированы | Count |
| Number of rollbacks per minute | postgres.xact_rollback.count | Количество транзакций в этой базе данных, которые были отменены | Count |
| Disk block read count per minute | postgres.blks_read.count | Количество дисковых блоков, прочитанных в этой базе данных | Count |
| Cached disk block count per minute | postgres.blk_hit.count | Сколько раз дисковые блоки уже были обнаружены в буферном кеше, поэтому чтение не требовалось | Count |
| Rows fetch count (sequential scan and index entry) per minute | postgres.tup_returned.count | Количество активных строк, полученных при последовательном сканировании, и записей индекса, возвращенных при сканировании индекса в этой базе данных. | Count |
| Row fetch count (index scan) per minute | postgres.tup_fetched.count | Количество активных строк, полученных при сканировании индекса в этой базе данных | Count |
| Row inserts count per minute | postgres.tup_inserted.count | Количество строк, вставленных запросами в эту базу данных | Count |
| Row updates count per minute | postgres.tup_updated.count | Количество строк, обновленных запросами в этой базе данных | Count |
| Row deletes count per minute | postgres.tup_deleted.count | Количество строк, удаленных запросами в этой базе данных | Count |
| - | postgres.conflicts.count | - | - |
| Temp files count | postgres.temp_files | Количество временных файлов, созданных запросами в этой базе данных | Count |
| Temp files bytes | postgres.temp_bytes | Общий объем данных, записанных во временные файлы по запросам в этой базе данных | Байт |
| Cache hit ratio | 1 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Cache hit ratio | postgres.cache-hit-ratio | Коэффициент попадания в кэш | Count |
| Wal stats | 8 | ||
| Название метрики | Ключ метрики | Описание | Единица |
| Wal records per minute | postgres.wal.records.count | Количество записей WAL, генерируемых в минуту | Count |
| WAL fpi per minute | postgres.wal.fpi.count | Количество полностраничных изображений WAL, генерируемых в минуту | Count |
| WAL bytes | postgres.wal.bytes | Общий объем сгенерированного WAL в байтах | Count |
| Wal buffers full | postgres.wal.buffers.full | Сколько раз данные WAL записывались на диск из-за переполнения буферов WAL | Count |
| WAL write | postgres.wal.write | Сколько раз буферы WAL были записаны на диск с помощью запроса XLogWrite | Count |
| WAL sync | postgres.wal.sync | Сколько раз файлы WAL были синхронизированы с диском с помощью запроса Issue_xlog_fsync | Count |
| WAL write time | postgres.wal.write.time | Общее количество времени, потраченное на запись буферов WAL на диск посредством запроса XLogWrite, в миллисекундах. | Милисекунды |
| WAL sync time | postgres.wal_sync_time | Общее количество времени, потраченное на синхронизацию файлов WAL с диском с помощью запроса Issue_xlog_fsync, в миллисекундах. | Милисекунды |


