Перейти к основному содержимому

События мониторинга

Для просмотра текущего состояния системы в Pangolin предусмотрены предопределенные представления. Подробнее о представлениях смотрите в официальной документации PostgreSQL, а также в разделе «Сценарии администрирования» документации Pangolin.

Для сбора метрик с Pangolin необходимо дополнительное ПО, установка которого описана в документе «Установка и настройка дополнительных компонентов системы, не входящих в состав дистрибутива Pangolin», раздел «Мониторинг с помощью Grafana» (документ доступен в личном кабинете).

Примечание:

Дополнительные запросы для postgres_exporter можно найти здесь.

Фоновые процессы: autovacuum и vacuum

Название метрикиЧастота сборки метрикОписание метрикиОписание результатов сбора метрикSQL запросПример использования Grafana-prometheus:postgres_exporter
pg_settings_autovacuum_freeze_max_age1 раз /10 секЗначение параметра autovacuum_freeze_max_ageЗначение параметра на момент сбора метрикПолучение значения из pg_settingsКоличество транзакций, оставшихся до принудительной остановки Pangolin (txid wraparound):

pg_settings_autovacuum_freeze_max_age

_Упрощенное название метрики: autovacuum_freeze_max_age

pgse_autovacuum_limit_to_limit

Упрощенное название метрики: {{datname}}_Осталось транзакций перед переполнением

тут
pgse_autovacuum_limit_to_limit1 раз /10 секКоличество транзакций БД до принудительной остановки СУБДТекущее значение Transaction ID на момент сбора метрикselect datname, 2147483647 - age(datfrozenxid) as to_limit from pg_database order by age(datfrozenxid) desc;Cм. ячейку выше
pgse_vacuum_for_each_table_vacuum_count1 раз /10 секЗапуск операции vacuum по таблицеКоличество операции vacuum по таблицеselect schemaname, relname, vacuum_count, autovacuum_count from pg_stat_user_tables;Таблицы по количеству проходов VACUUM/AUTOVACUUM:

floor(increase(pgse_vacuum_for_each_table_vacuum_count[$interval]))

Упрощенное название метрики: {{schemaname}} {{relname}} vacuum count

floor(increase(pgse_vacuum_for_each_table_autovacuum_count[$interval]))

Упрощенное название метрики: {{schemaname}} {{relname}} autovacuum count

тут
pgse_vacuum_for_each_table_autovacuum_count1 раз /10 секЗапуск операции AUTOVACUUM по таблицеКоличество операции AUTOVACUUM по таблицеCм. ячейку вышеCм. ячейку выше
pg_settings_autovacuum_max_workers1 раз /10 секЗначение параметра autovacuum_max_workersЗначение параметра на момент сбора метрикПолучение значения из pg_settingsРаботающие процессы VACUUM и AUTOVACUUM:

pg_settings_autovacuum_max_workers

_Упрощенное название метрики: autovacuum_max_workers

pgse_vacuum_regular

Упрощенное название метрики: Регулярный autovacuum

`pgse_vacuum_user_user

Упрощенное название метрики: Очистка запущенная пользователем

pgse_vacuum_wraparound_wraparound

Упрощенное название метрики: Автовакуум выполненный принудительно чтобы избежать wraparound

тут
pgse_vacuum_regular1 раз /10 секОперации AUTOVACUUMКоличество запущенных процессов AUTOVACUUM в момент опросаselect count(query) as regular FROM pg_stat_activity where query ~* '^autovacuum*(?:(?!.*\bwraparound\b))';Cм. ячейку выше
pgse_vacuum_user_user1 раз /10 секОперации vacuum, запущенные пользователемКоличество инициированных пользователем процессов vacuum в момент опросаselect count(query) as user FROM pg_stat_activity where query ~* '^vacuum';Cм. ячейку выше
pgse_vacuum_wraparound_wraparound1 раз /10 секОперации vacuum для избежания случая wraparoundКоличество процессов vacuum, запущенных, чтобы избежать wraparound в момент опросаselect count(query) as wraparound FROM pg_stat_activity where query ~* '^autovacuum.*to prevent wraparound';Cм. ячейку выше

Фоновые процессы: bgwritter и checkpoint

Название метрикиЧастота сборки метрикОписание метрикиОписание результатов сбора метрикSQL запросПример использования Grafana-prometheus:postgres_exporter
pg_settings_block_size1 раз /10 секЗначение параметра block_sizeЗначение параметра на момент сбора метрикПолучение значения из pg_settingsЗапись на диск различными процессами СУБД:

rate(pg_stat_bgwriter_buffers_backend\{instance="$instance"\}[$interval])*pg_settings_block_size

Упрощенное название метрики: buffers_backend

rate(pg_stat_bgwriter_buffers_clean\{instance="$instance"\}[$interval])*pg_settings_block_size

Упрощенное название метрики: buffers_clean

rate(pg_stat_bgwriter_buffers_checkpoint\{instance="$instance"\}[$interval])*pg_settings_block_size

Упрощенное название метрики: buffers_checkpoint

ceil(rate(pg_stat_archiver_archived_count\{instance="$instance"\}[$interval]))

Упрощенное название метрики: Архивировано WAL файлов

sum(rate(pg_stat_database_temp_bytes\{instance="$instance"\}[$interval]))

Упрощенное название метрики: Записано во временные файлы

тут
pg_stat_bgwriter_buffers_backend1 раз /10 секБуферы, записанные самим серверным процессомКоличество буферов, записанных самим серверным процессомЗначение из pg_stat_bgwriterCм. ячейку выше
pg_stat_bgwriter_buffers_clean1 раз /10 секБуферы, записанные фоновым процессом записиКоличество буферов, записанных фоновым процессом записиЗначение из pg_stat_bgwriterCм. ячейку выше
pg_stat_bgwriter_buffers_checkpoint1 раз /10 секБуферы, записанные процессом контрольной точкиКоличество буферов, записанных процессом контрольной точкиЗначение из pg_stat_bgwriterCм. ячейку выше
pg_stat_archiver_archived_count1 раз /10 секФайлы, архивированные процессом архивации WAL файловКоличество файлов WAL, которые были успешно архивированыЗначение из pg_stat_archiverCм. ячейку выше
pg_stat_database_temp_bytes1 раз /10 секФайлы, созданные запросами в этой базе данныхКоличество временных файлов, созданных запросами в этой базе данныхЗначение из pg_stat_databaseCм. ячейку выше
pgse_dirtypages_dirty1 раз /10 секСтраницы (блоки), измененные запросамиКоличество блоков затронутых во время выполнения запросовselect t2.rolname,t3.datname,queryid,(t1.shared_blks_dirtied+t1.local_blks_dirtied) as dirty from pg_stat_statements t1 join pg_roles t2 on t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid order by dirty desc limit 5;Страницы (блоки) измененные запросами:

rate(pgse_dirtypages_dirty[$interval])*8192

Упрощенное название метрики:{{queryid}} {{rolname}}{{datname}}_

тут
pg_stat_bgwriter_checkpoints_req1 раз /10 секКонтрольные точки, инициированные по срабатыванию таймаутаКоличество работающих контрольных точек, инициированных по срабатыванию таймаутаЗначение из pg_stat_bgwriterСтатистика контрольных точек:

ceil(rate(pg_stat_bgwriter_checkpoints_req[1m]))

Упрощенное название метрики: wal_size достигнуто

ceil(rate(pg_stat_bgwriter_checkpoints_timed[1m]))

Упрощенное название метрики: checkpoint_timeout достигнуто

rate(pg_stat_bgwriter_checkpoint_write_time\{instance="$instance"\}[1m])

Упрощенное название метрики: Время записи

rate(pg_stat_bgwriter_checkpoint_sync_time\{instance="$instance"\}[1m])

Упрощенное название метрики: Время синхронизации

тут
pg_stat_bgwriter_checkpoints_timed1 раз /10 секКонтрольные точки, инициированные по условию на размер накопленного WALКоличество работающих контрольных точек, инициированных по условию на размер накопленного WALЗначение из pg_stat_bgwriterCм. ячейку выше
pg_stat_bgwriter_checkpoint_write_time1 раз /10 секОбщее время, которое было затрачено на этап обработки контрольной точки, в котором файлы записываются на диск, в миллисекундахОбщее время, которое было затрачено на этап обработки контрольной точки, в котором файлы записываются на диск, в миллисекундахЗначение из pg_stat_bgwriterCм. ячейку выше
pg_stat_bgwriter_checkpoint_sync_time1 раз /10 секОбщее время, которое было затрачено на этап обработки контрольной точки, в котором файлы синхронизируются с диском, в миллисекундахОбщее время, которое было затрачено на этап обработки контрольной точки, в котором файлы синхронизируются с диском, в миллисекундахЗначение из pg_stat_bgwriterCм. ячейку выше

Репликация

Название метрикиЧастота сборки метрикОписание метрикиОписание результатов сбора метрикSQL запросПример использования Grafana-prometheus:postgres_exporter
pgse_replication_slots_retained_bytes_active1 раз /10 секАктивность репликацииКоличество и статус активных слотов репликацииselect slot_name,slot_type,case active when 't' then 1 when 'f' then 0 END as active,pg_wal_lsn_diff(pg_current_wal_lsn(),restart_lsn) as restart_lsn_diff,pg_wal_lsn_diff(pg_current_wal_lsn(),confirmed_flush_lsn) as not_received from pg_replication_slots;Активность репликации:

pgse_replication_slots_retained_bytes_active

Упрощенное название метрики:

тут
pgse_replication_replay_lag_seconds1 раз /10 секВремя, прошедшее с момента локального сброса последних данных WAL до получения уведомления о том, что этот ведомый сервер записал, сбросил на диск и применил ихЗадержка, возникшая при фиксации транзакции, когда в synchronous_commit выбран уровень remote_applyselect client_addr, pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn)::bigint as total_lag_bytes, extract(epoch from replay_lag) as replay_lag_seconds, extract(epoch from write_lag) as write_lag_seconds, extract(epoch from flush_lag) as flush_lag_seconds,pg_wal_lsn_diff(pg_current_wal_lsn(),sent_lsn)::bigint as pending_bytes,pg_wal_lsn_diff(sent_lsn,write_lsn)::bigint as write_bytes,pg_wal_lsn_diff(write_lsn,flush_lsn)::bigint as flush_bytes,pg_wal_lsn_diff(flush_lsn,replay_lsn)::bigint as replay_bytes from pg_stat_replication;Максимальная задержка репликации (в секундах) всех реплик:

max(sum by(client_addr) (pgse_replication_replay_lag_seconds))

Упрощенное название метрики: Max over all replicas

тут

Общая задержка репликации, сумма по всем репликам:

sum(pgse_replication_replay_lag_seconds)

_Упрощенное название метрики: Total lag

тут
pgse_replication_write_lag_seconds1 раз /10 секВремя, прошедшее с момента локального сброса последних данных WAL до получения уведомления о том, что этот ведомый сервер записал их (но еще не сбросил на диск и не применил)Задержка, возникшая при фиксации транзакции, когда в synchronous_commit выбран уровень remote_writeCм. ячейку вышеЗадержка репликации по фазам(в секундах):

sum by (client_addr) (pgse_replication_write_lag_seconds)

Упрощенное название метрики: {{client_addr}} write_lag

sum by (client_addr) (pgse_replication_flush_lag_seconds)

Упрощенное название метрики: {{client_addr}} flush_lag

sum by (client_addr) (pgse_replication_replay_lag_seconds)

_Упрощенное название метрики: {{client_addr}} replay_lag

тут
pgse_replication_flush_lag_seconds1 раз /10 секВремя, прошедшее с момента локального сброса последних данных WAL до получения уведомления о том, что этот ведомый сервер записал и сбросил их на диск (но еще не применил)Задержка, возникшая при фиксации транзакции, когда в synchronous_commit выбран уровень onCм. ячейку вышеCм. ячейку выше
pgse_replication_slots_retained_bytes_restart_lsn_diff1 раз /10 секПоказывает количество записей в WAL, которые по-прежнему могут быть нужны пользователям этого слота и, таким образом, не будут автоматически удаляться при контрольных точкахКоличество записей в WAL (в байтах), которые по-прежнему могут быть нужны пользователям этого слота и, таким образом, не будут автоматически удаляться при контрольных точкахselect slot_name,slot_type,case active when 't' then 1 when 'f' then 0 END as active,pg_wal_lsn_diff(pg_current_wal_lsn(),restart_lsn) as restart_lsn_diff,pg_wal_lsn_diff(pg_current_wal_lsn(),confirmed_flush_lsn) as not_received from pg_replication_slots;Слоты репликации (оставшиеся байты):

sum by(slot_name) (pgse_replication_slots_retained_bytes_restart_lsn_diff)

Упрощенное название метрики: {{slot_name}} physical

sum by(slot_name) (pgse_replication_slots_retained_bytes_not_received)

Упрощенное название метрики: {{slot_name}} logical

тут
pgse_replication_slots_retained_bytes_not_received1 раз /10 секПоказывает количество адресов (LSN), которые нужны потребителю логического слота для репликации данныхКоличество адресов (LSN) (в байтах), которые нужны потребителю логического слота для репликации данныхCм. ячейку вышеCм. ячейку выше
pgse_replication_total_lag_bytes1 раз /10 секЗадержка репликации между позицией локального применения изменений и позицией применения изменений с ведомого сервераОбщая задержка репликации в байтахselect client_addr, pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn)::bigint as total_lag_bytes, extract(epoch from replay_lag) as replay_lag_seconds, extract(epoch from write_lag) as write_lag_seconds, extract(epoch from flush_lag) as flush_lag_seconds,pg_wal_lsn_diff(pg_current_wal_lsn(),sent_lsn)::bigint as pending_bytes,pg_wal_lsn_diff(sent_lsn,write_lsn)::bigint as write_bytes,pg_wal_lsn_diff(write_lsn,flush_lsn)::bigint as flush_bytes,pg_wal_lsn_diff(flush_lsn,replay_lsn)::bigint as replay_bytes from pg_stat_replication;Общая задержка репликации в байтах, сумма по всем репликам:

sum(pgse_replication_total_lag_bytes)

Упрощенное название метрики: Total replication lag in bytes

тут
pgse_replication_pending_bytes1 раз /10 секЗадержка репликации между позицией локального применения изменений и позицией отправленных изменений ведомого сервераЗадержка показывает, сколько WAL было создано, но еще не отправлено резервным серверамCм. ячейку вышеЗадержка репликации по фазам(в байтах):

sum by (client_addr) (pgse_replication_replay_bytes)

Упрощенное название метрики: {{client_addr}} replay_lag

sum by (client_addr) (pgse_replication_flush_bytes)

Упрощенное название метрики: {{client_addr}} flush_lag

sum by (client_addr) (pgse_replication_pending_bytes)

Упрощенное название метрики: {{client_addr}} pending_lag

sum by (client_addr) (pgse_replication_write_bytes)

Упрощенное название метрики: {{client_addr}} write_lag

тут
pgse_replication_write_bytes1 раз /10 секЗадержка репликации между позицией локального применения изменений и позицией записи изменений (но еще не сброшенных на диск и не применимых) с ведомого сервераЗадержка показывает WAL в сети, которые были отправлены, но еще не записаныCм. ячейку вышеCм. ячейку выше
pgse_replication_replay_bytes1 раз /10 секЗадержка репликации между позицией локального применения изменений и позицией записи и сброса изменений на диск (но еще не воспроизведенных) с ведомого сервераЗадержка показывает, что WAL был сброшен в постоянное хранилище, но еще не воспроизведенCм. ячейку вышеCм. ячейку выше
pgse_replication_flush_bytes1 раз /10 секЗадержка репликации между позицией локального применения изменений и позицией не сброшенных изменений в постоянные хранилище с ведомого сервераЗадержка показывает, что WAL записан, но не сброшен в постоянное хранилищеCм. ячейку вышеCм. ячейку выше

Работа с буферами

Название метрикиЧастота сборки метрикОписание метрикиОписание результатов сбора метрикSQL запросПример использования Grafana-prometheus:postgres_exporter
pg_stat_database_blks_hit1 раз /10 секСколько раз дисковые блоки обнаруживались в буферном кеше, так что чтение с диска не потребовалосьКоличество блоков прочитанных из кеша в этой базе данныхЗначение из pg_stat_databaseblks_hit и blks_read:

round(100*sum(pg_stat_database_blks_hit)/(sum(pg_stat_database_blks_hit) + sum(pg_stat_database_blks_read)),0.1)

Упрощенное название метрики: {{datname}}

тут
pg_stat_database_blks_read1 раз /10 секКоличество прочитанных дисковых блоков в этой базе данныхКоличество прочитанных дисковых блоков в этой базе данныхЗначение из pg_stat_database
pgse_statio_user_tables_heap_blks_hit1 раз /10 секЧисло попаданий в буфер для этой таблицыКоличество блоков прочитанных из буфера, прочитанных для этой таблицыselect relname,relid,heap_blks_hit,heap_blks_read,idx_blks_hit,idx_blks_read from pg_statio_user_tables;heap_blks_hit и heap_blks_read:

round(100*pgse_statio_user_tables_heap_blks_hit/(pgse_statio_user_tables_heap_blks_hit + pgse_statio_user_tables_heap_blks_read),0.1)

Упрощенное название метрики: {{alias}}{{relname}}_

тут
pgse_statio_user_tables_heap_blks_read1 раз /10 секКоличество дисковых блоков, прочитанных из этой таблицыКоличество дисковых блоков, прочитанных из этой таблицыCм. ячейку вышеCм. ячейку выше
pgse_statio_user_tables_idx_blks_hit1 раз /10 секЧисло попаданий в буфер для этого индексаКоличество блоков прочитанных из буфера, прочитанных для этого индексаCм. ячейку вышеidx_blks_hit и idx_blks_read:

round(100*pgse_statio_user_tables_idx_blks_hit/(pgse_statio_user_tables_idx_blks_hit + pgse_statio_user_tables_idx_blks_read),0.1)

Упрощенное название метрики: {{relname}}

тут
pgse_statio_user_tables_idx_blks_read1 раз /10 секКоличество дисковых блоков, прочитанных из этого индексаКоличество дисковых блоков, прочитанных из этого индексаCм. ячейку вышеCм. ячейку выше

Блокировки

Название метрикиЧастота сборки метрикОписание метрикиОписание результатов сбора метрикSQL запросПример использования Grafana-prometheus:postgres_exporter
pgse_stat_activity_check1 раз /10 секКоличество событий ожидания подключений СУБДКоличество событий ожидания подключений СУБДSELECT left(query,32) as query, pid::text, coalesce(usename, 'NULL') AS usename, coalesce(datname, 'NULL') AS datname, wait_event_type, wait_event, 1 as check FROM pg_stat_activity where length(wait_event) > 0;События ожидания по типам:

sum by(wait_event_type)(pgse_stat_activity_check)

Упрощенное название метрики: {{wait_event_type}}

тут

События ожидания:

sum by(wait_event, wait_event_type)(pgse_stat_activity_check)

Упрощенное название метрики: {{wait_event}}.{{wait_event_type}}

тут
pg_locks_count1 раз /10 секКоличество блокировок всех типов, зафиксированное в этой базе данныхКоличество блокировок всех типов, зафиксированное в этой базе данныхЗначение из pg_locksБлокировки:

pg_locks_count

Упрощенное название метрики: {{mode}} {{datname}}

тут
pg_stat_database_deadlocks1 раз /10 секКоличество взаимных блокировок, зафиксированное в этой базе данныхКоличество взаимных блокировок, зафиксированное в этой базе данныхЗначение из pg_stat_databaseВзаимные блокировки:

idelta(pg_stat_database_deadlocks[$interval])

Упрощенное название метрики: deadlocks в {{datname}}

тут

Статистика по запросам

Название метрикиЧастота сборки метрикОписание метрикиОписание результатов сбора метрикSQL запросПример использования Grafana-prometheus:postgres_exporter
pgse_stat_statements_total_time_total_time_sec1 раз /10 секТоп 5 запросов с максимальным общим временем, затраченным на запрос, в миллисекундах, запрос обогащен текстом запросаТоп 5 запросов с максимальным общим временем, затраченным на запрос, в миллисекундах, запрос обогащен текстом запросаselect t2.rolname,t3.datname,total_time/1000 as total_time_sec,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid = t3.oid ORDER by total_time DESC LIMIT 5;Топ запросов по общему времени выполнения:

pgse_stat_statements_total_time_total_time_sec{datname!~"template.*", datname=~"$datname"}

Упрощенное название метрики: -

тут
pgse_stat_statements_avg_mean_time_sec1 раз /10 секТоп 5 запросов с максимальным средним временем, затраченным на запрос, в миллисекундах, запрос обогащен текстом запросаТоп 5 запросов с максимальным средним временем, затраченным на запрос, в миллисекундах, запрос обогащен текстом запросаselect t2.rolname,t3.datname,mean_time/1000 as mean_time_sec,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid ORDER by mean_time DESC LIMIT 5;Топ запросов по среднему времени выполнения:

pgse_stat_statements_avg_mean_time_sec{datname!~"template.*", datname=~"$datname"}

Упрощенное название метрики: -

тут
pgse_stat_statements_calls_calls1 раз /10 секТоп 5 запросов по числу выполнения, запрос обогащен текстом запросаТоп 5 запросов по числу выполнения, запрос обогащен текстом запросаselect t2.rolname,t3.datname,calls,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid ORDER by calls DESC LIMIT 5;Топ запросов по количеству вызовов:

pgse_stat_statements_calls_calls{datname!~"template.*", instance=~"$instance", datname=~"$datname"}

Упрощенное название метрики: -

тут
pgse_stat_statements_cpu_time1 раз /10 секТоп 5 запросов с максимальным процессорным временем, запрос обогащен текстом запросаТоп 5 запросов с максимальным процессорным временем, запрос обогащен текстом запросаselect t2.rolname,t3.datname,(total_time-blk_read_time-blk_write_time)/calls::numeric(20, 2) as time,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid ORDER by time DESC LIMIT 5;Топ запросов по использованию центрального процессора:

pgse_stat_statements_cpu_time{datname!~"template.*", datname=~"$datname"}

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ запросов по использованию центрального процессора (текст):

pgse_stat_statements_cpu_time

Упрощенное название метрики: -

тут
pgse_stat_statements_avg_rows_avg_rows1 раз /10 секТоп 5 запросов по среднему количеству возвращенного числа строк, запрос обогащен текстом запросаТоп 5 запросов по среднему количеству возвращенного числа строк, запрос обогащен текстом запросаselect t2.rolname,t3.datname,rows/calls as avg_rows,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid ORDER by avg_rows DESC LIMIT 5;Топ запросов по среднему возвращенному числу строк:

pgse_stat_statements_avg_rows_avg_rows

Упрощенное название метрики: -

тут
pgse_stat_statements_rows_rows1 раз /10 секТоп 5 запросов по числу, строк полученных или затронутых запросом, запрос обогащен текстом запросаТоп 5 запросов по числу строк, полученных или затронутых запросом, запрос обогащен текстом запросаselect t2.rolname,t3.datname,rows,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid ORDER by rows DESC LIMIT 5;Топ запросов по возвращенным строкам:

pgse_stat_statements_rows_rows

Упрощенное название метрики: -

тут
pgse_stat_statements_bandwidth_band1 раз /10 секТоп 5 запросов по пропускной способности, запрос обогащен текстом запросаТоп 5 запросов по пропускной способности, запрос обогащен текстом запросаselect t2.rolname,t3.datname, (shared_blks_hit+shared_blks_read+shared_blks_dirtied+shared_blks_written+temp_blks_read+temp_blks_written) as band,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid ORDER by band DESC LIMIT 5;Топ запросов по пропускной способности:

pgse_stat_statements_bandwidth_band*8192

Упрощенное название метрики: -

тут
pgse_stat_statements_io_time1 раз /10 секТоп 5 запросов с максимальным дисковым временем, запрос обогащен текстом запросаТоп 5 запросов с максимальным дисковым временем, запрос обогащен текстом запросаВнимание! Требуется включенный параметр track_io_timing

select t2.rolname,t3.datname, ((blk_read_time+blk_write_time)/calls)::numeric(20, 2) as time,left(query,32) as query,queryid from pg_stat_statements t1 JOIN pg_roles t2 ON t1.userid=t2.oid JOIN pg_database t3 ON t1.dbid=t3.oid ORDER by time DESC LIMIT 5;
Топ запросов по использованию диска:

pgse_stat_statements_io_time{datname!~"template.*", datname=~"$datname"}

Упрощенное название метрики: {{queryid}}{{rolname}}{{datname}}

тут
Tоп запросов по использованию диска (текст):

pgse_stat_statements_io_time

Упрощенное название метрики: -

тут
pg_stat_statements_total_time_seconds1 раз /10 секОбщее время, затраченное на запрос, в миллисекундахОбщее время, затраченное на запрос, по каждому запросу, сохраненному в статистикеselect t2.rolname, t3.datname, queryid, calls, total_time / 1000 as total_time_seconds, min_time / 1000 as min_time_seconds, max_time / 1000 as max_time_seconds, mean_time / 1000 as mean_time_seconds, stddev_time / 1000 as stddev_time_seconds, rows, shared_blks_hit, shared_blks_read, shared_blks_dirtied, shared_blks_written, local_blks_hit, local_blks_read, local_blks_dirtied, local_blks_written, temp_blks_read, temp_blks_written, blk_read_time / 1000 as blk_read_time_seconds, blk_write_time / 1000 as blk_write_time_seconds FROM pg_stat_statements t1 JOIN pg_roles t2 ON (t1.userid=t2.oid) JOIN pg_database t3 ON (t1.dbid=t3.oid);Топ запросов по общему времени выполнения:

topk(5, pg_stat_statements_total_time_seconds{datname!~"template.*", datname=~"$datname"})

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Tоп запросов по среднему времени выполнения:

topk(5, pg_stat_statements_mean_time_seconds{datname!~"template.*", datname=~"$datname"})

Упрощенное название метрики: {{queryid}}{{rolname}}{{datname}}

тут

Tоп запросов по количеству вызовов:

topk(5, pg_stat_statements_calls{datname!~"template.*", instance=~"$instance", datname=~"$datname"})

Упрощенное название метрики: -

тут

Tоп запросов по возвращенным строкам:

topk(5,pg_stat_statements_rows)

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Tоп запросов по пропускной способности:

topk(5,(pg_stat_statements_shared_blks_hit+pg_stat_statements_shared_blks_read+pg_stat_statements_shared_blks_dirtied+pg_stat_statements_shared_blks_written+pg_stat_statements_temp_blks_read+pg_stat_statements_temp_blks_written)\*8192)

_Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}_

тут

Топ 5 - время ожидания выполнения операций чтения с диска:

topk(5,pg_stat_statements_blk_read_time_seconds{datname!~"template.\*", datname=~"$datname"})

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ 5 - время ожидания выполнения операций записи на диск:

topk(5,pg_stat_statements_blk_write_time_seconds{datname!~"template.*", datname=~"$datname"})

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ 5 - Число чтений временных блоков:

topk(5,rate(pg_stat_statements_temp_blks_read{datname!~"template.*", datname=~"$datname"}[$interval]))

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ 5 - Число записей временных блоков:

topk(5,rate(pg_stat_statements_temp_blks_written{datname!~"template.*", datname=~"$datname"}[$interval]))

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ 5 - количество блоков считанных из кеша группой запросов:

topk(5,rate(pg_stat_statements_local_blks_hit{datname!~"template.*", datname=~"$datname"}[$interval])+rate(pg_stat_statements_shared_blks_hit{datname!~"template.*", datname=~"$datname"}[$interval]))

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ 5 - количество блоков, считанных с диска группой запросов:

topk(5,rate(pg_stat_statements_local_blks_read{datname!~"template.*", datname=~"$datname"}[$interval])+rate(pg_stat_statements_shared_blks_read{datname!~"template.*", datname=~"$datname"}[$interval]))

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ 5 - количество блоков, записанных на диск группой запросов:

topk(5,rate(pg_stat_statements_local_blks_written{datname!~"template.*", datname=~"$datname"}[$interval])+rate(pg_stat_statements_shared_blks_written{datname!~"template.*", datname=~"$datname"}[$interval]))

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут

Топ 5 - количество блоков, измененных группой запросов:

topk(5,rate(pg_stat_statements_local_blks_dirtied{datname!~"template.*", datname=~"$datname"}[$interval])+rate(pg_stat_statements_shared_blks_dirtied{datname!~"template.*", datname=~"$datname"}[$interval]))

Упрощенное название метрики: {{queryid}}_{{rolname}}_{{datname}}

тут
pg_stat_statements_mean_time_seconds1 раз /10 секСреднее время, затраченное на запрос, в миллисекундахСреднее время, затраченное на запрос, по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_calls1 раз /10 секЧисло выполнений запросаЧисло выполнений по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_rows1 раз /10 секОбщее число строк, полученных или затронутых запросомОбщее число строк по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_shared_blks_hit1 раз /10 секОбщее число попаданий в разделяемый кеш блоков для запросаОбщее число попаданий в разделяемый кеш блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_shared_blks_read1 раз /10 секОбщее число чтений разделяемых блоков для запросаОбщее число чтений разделяемых блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_shared_blks_dirtied1 раз /10 секОбщее число разделяемых блоков, «загрязненных» запросомОбщее число разделяемых блоков, «загрязненных», по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_shared_blks_written1 раз /10 секОбщее число разделяемых блоков, записанных запросомОбщее число разделяемых блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_temp_blks_read1 раз /10 секОбщее число чтений временных блоков для запросаОбщее число чтений временных блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_temp_blks_written1 раз /10 секОбщее число записей временных блоков для запросаОбщее число записей временных блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_blk_read_time_seconds1 раз /10 секОбщее время, затраченное запросом на чтение блоков, в миллисекундахОбщее время, затраченное каждым запросом на чтение блоков, в миллисекундахCм. ячейку вышеCм. ячейку выше
pg_stat_statements_blk_write_time_seconds1 раз /10 секОбщее время, затраченное запросом на запись блоков, в миллисекундахОбщее время, затраченное каждым запросом на запись блоков, в миллисекундахCм. ячейку вышеCм. ячейку выше
pg_stat_statements_local_blks_hit1 раз /10 секОбщее число попаданий в локальный кеш блоков для данного запросаОбщее число попаданий в локальный кеш блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_local_blks_read1 раз /10 секОбщее число чтений локальных блоков для данного запросаОбщее число чтений локальных блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_local_blks_written1 раз /10 секОбщее число локальных блоков, записанных данным запросомОбщее число локальных блоков по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше
pg_stat_statements_local_blks_dirtied1 раз /10 секОбщее число локальных блоков, «загрязненных» данным запросомОбщее число локальных блоков, «загрязненных», по каждому запросу, сохраненному в статистикеCм. ячейку вышеCм. ячейку выше

Метрики etcd

Примечание:

Подробная информация по метрикам etcd приведена в официальной документации.

Название метрикиЧастота сборки метрикОписание метрикиОписание результатов сбора метрик
etcd_server_has_leader1 раз /10 секСуществует ли лидер1 или 0 от каждого узла кластера. 1 - существует 0 - отсутствует
etcd_server_leader_changes_seen_total1 раз /10 секКоличество подтвержденных смен лидера кластераКоличество подтвержденных смен лидера кластера
etcd_server_proposals_applied_total1 раз /10 секОбщее количество примененных консенсусных предложенийКоличество примененных консенсусных предложений
etcd_disk_wal_fsync_duration_seconds_bucket1 раз /10 секРаспределение задержки fsync, вызванное процессом записи WAL-файловВремя задержки работы fsync с диском для каждого узла кластера
etcd_disk_backend_commit_duration_seconds_bucket1 раз /10 секРаспределение задержки подтверждения вызванного процессом etcdВремя задержки, вызванное процессом etcd для каждого узла кластера
etcd_network_peer_received_bytes_total1 раз /10 секОбщее число полученных байт от членов кластераКоличество полученных байт от членов кластера
etcd_network_peer_sent_bytes_total1 раз /10 секОбщее число отправленных байт членам кластераКоличество отправленных байт членам кластера
etcd_network_peer_round_trip_time_seconds_bucket1 раз /10 секГистограмма кругового обхода между членами кластераВремя кругового обхода между участниками сети
etcd_network_client_grpc_received_bytes_total1 раз /10 секОбщее число полученных байт от клиентов по gRPCКоличество полученных байт от клиентов по gRPC
etcd_network_client_grpc_sent_bytes_total1 раз /10 секОбщее число отправленных байт клиентам по gRPCКоличество отправленных байт клиентам по gRPC
etcd_network_peer_received_failures_total1 раз /10 секОбщее количество сбоев приема от узлаКоличество сбоев приема от узла
etcd_network_peer_sent_failures_total1 раз /10 секОбщее количество сбоев отправки к узлуКоличество сбоев отправки к узлу
etcd_server_proposals_failed_total1 раз /10 секОбщее количество ошибочных консенсусных предложенийКоличество ошибочных консенсусных предложений
etcd_server_proposals_pending1 раз /10 секОбщее количество ожидающих консенсусных предложенийКоличество ожидающих консенсусных предложений
etcd_disk_wal_fsync_duration_seconds_sum1 раз /10 секСумма распределение задержки fsync, вызванное процессом записи WAL-файловСумма распределения задержки fsync, вызванная процессом записи WAL-файлов
etcd_disk_backend_commit_duration_seconds_sum1 раз /10 секСумма распределение задержки подтверждения вызванного процессом etcdСумма распределения задержки подтверждения вызванного процессом etcd
etcd_debugging_snap_save_total_duration_seconds_sum1 раз /10 секСумма распределения задержки сохранения «v3.snapshot»Сумма распределения задержки сохранения «v3.snapshot»