События мониторинга
Для просмотра текущего состояния системы в Pangolin предусмотрены предопределенные представления. Подробнее о представлениях смотрите в официальной документации PostgreSQL, а также в разделе «Сценарии администрирования» документации Pangolin.
Для сбора метрик с Pangolin необходимо дополнительное ПО, установка которого описана в документе «Установка и настройка дополнительных компонентов системы, не входящих в состав дистрибутива Pangolin», раздел «Мониторинг с помощью Grafana» (документ доступен в личном кабинете).
Примечание:
Дополнительные запросы для
postgres_exporter
можно найти здесь.
Фоновые процессы: autovacuum и vacuum
Название метрики | Частота сборки метрик | Описание метрики | Описание результатов сбора метрик | SQL запрос | Пример использования Grafana-prometheus:postgres_exporter |
---|---|---|---|---|---|
pg_settings_autovacuum_freeze_max_age | 1 раз /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_limit | 1 раз /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_count | 1 раз /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_count | 1 раз /10 сек | Запуск операции AUTOVACUUM по таблице | Количество операции AUTOVACUUM по таблице | Cм. ячейку выше | Cм. ячейку выше |
pg_settings_autovacuum_max_workers | 1 раз /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_regular | 1 раз /10 сек | Операции AUTOVACUUM | Количество запущенных процессов AUTOVACUUM в момент опроса | select count(query) as regular FROM pg_stat_activity where query ~* '^autovacuum*(?:(?!.*\bwraparound\b))'; | Cм. ячейку выше |
pgse_vacuum_user_user | 1 раз /10 сек | Операции vacuum, запущенные пользователем | Количество инициированных пользователем процессов vacuum в момент опроса | select count(query) as user FROM pg_stat_activity where query ~* '^vacuum'; | Cм. ячейку выше |
pgse_vacuum_wraparound_wraparound | 1 раз /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_size | 1 раз /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_backend | 1 раз /10 сек | Буферы, записанные самим серверным процессом | Количество буферов, записанных самим серверным процессом | Значение из pg_stat_bgwriter | Cм. ячейку выше |
pg_stat_bgwriter_buffers_clean | 1 раз /10 сек | Буферы, записанные фоновым процессом записи | Количество буферов, записанных фоновым процессом записи | Значение из pg_stat_bgwriter | Cм. ячейку выше |
pg_stat_bgwriter_buffers_checkpoint | 1 раз /10 сек | Буферы, записанные процессом контрольной точки | Количество буферов, записанных процессом контрольной точки | Значение из pg_stat_bgwriter | Cм. ячейку выше |
pg_stat_archiver_archived_count | 1 раз /10 сек | Файлы, архивированные процессом архивации WAL файлов | Количество файлов WAL, которые были успешно архивированы | Значение из pg_stat_archiver | Cм. ячейку выше |
pg_stat_database_temp_bytes | 1 раз /10 сек | Файлы, созданные запросами в этой базе данных | Количество временных файлов, созданных запросами в этой базе данных | Значение из pg_stat_database | Cм. ячейку выше |
pgse_dirtypages_dirty | 1 раз /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_req | 1 раз /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_timed | 1 раз /10 сек | Контрольные точки, инициированные по условию на размер накопленного WAL | Количество работающих контрольных точек, инициированных по условию на размер накопленного WAL | Значение из pg_stat_bgwriter | Cм. ячейку выше |
pg_stat_bgwriter_checkpoint_write_time | 1 раз /10 сек | Общее время, которое было затрачено на этап обработки контрольной точки, в котором файлы записываются на диск, в миллисекундах | Общее время, которое было затрачено на этап обработки контрольной точки, в котором файлы записываются на диск, в миллисекундах | Значение из pg_stat_bgwriter | Cм. ячейку выше |
pg_stat_bgwriter_checkpoint_sync_time | 1 раз /10 сек | Общее время, которое было затрачено на этап обработки контрольной точки, в котором файлы синхронизируются с диском, в миллисекундах | Общее время, которое было затрачено на этап обработки контрольной точки, в котором файлы синхронизируются с диском, в миллисекундах | Значение из pg_stat_bgwriter | Cм. ячейку выше |
Репликация
Название метрики | Частота сборки метрик | Описание метрики | Описание результатов сбора метрик | SQL запрос | Пример использования Grafana-prometheus:postgres_exporter |
---|---|---|---|---|---|
pgse_replication_slots_retained_bytes_active | 1 раз /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_seconds | 1 раз /10 сек | Время, прошедшее с момента локального сброса последних данных WAL до получения уведомления о том, что этот ведомый сервер записал, сбросил на диск и применил их | Задержка, возникшая при фиксации транзакции, когда в synchronous_commit выбран уровень remote_apply | 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; | Максимальная задержка репликации (в секундах) всех реплик: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_seconds | 1 раз /10 сек | Время, прошедшее с момента локального сброса последних данных WAL до получения уведомления о том, что этот ведомый сервер записал их (но еще не сбросил на диск и не применил) | Задержка, возникшая при фиксации транзакции, когда в synchronous_commit выбран уровень remote_write | Cм. ячейку выше | Задержка репликации по фазам(в секундах): 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_seconds | 1 раз /10 сек | Время, прошедшее с момента локального сброса последних данных WAL до получения уведомления о том, что этот ведомый сервер записал и сбросил их на диск (но еще не применил) | Задержка, возникшая при фиксации транзакции, когда в synchronous_commit выбран уровень on | Cм. ячейку выше | Cм. ячейку выше |
pgse_replication_slots_retained_bytes_restart_lsn_diff | 1 раз /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_received | 1 раз /10 сек | Показывает количество адресов (LSN), которые нужны потребителю логического слота для репликации данных | Количество адресов (LSN) (в байтах), которые нужны потребителю логического слота для репликации данных | Cм. ячейку выше | Cм. ячейку выше |
pgse_replication_total_lag_bytes | 1 раз /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_bytes | 1 раз /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_bytes | 1 раз /10 сек | Задержка репликации между позицией локального применения изменений и позицией записи изменений (но еще не сброшенных на диск и не применимых) с ведомого сервера | Задержка показывает WAL в сети, которые были отправлены, но еще не записаны | Cм. ячейку выше | Cм. ячейку выше |
pgse_replication_replay_bytes | 1 раз /10 сек | Задержка репликации между позицией локального применения изменений и позицией записи и сброса изменений на диск (но еще не воспроизведенных) с ведомого сервера | Задержка показывает, что WAL был сброшен в постоянное хранилище, но еще не воспроизведен | Cм. ячейку выше | Cм. ячейку выше |
pgse_replication_flush_bytes | 1 раз /10 сек | Задержка репликации между позицией локального применения изменений и позицией не сброшенных изменений в постоянные хранилище с ведомого сервера | Задержка показывает, что WAL записан, но не сброшен в постоянное хранилище | Cм. ячейку выше | Cм. ячейку выше |
Работа с буферами
Название метрики | Частота сборки метрик | Описание метрики | Описание результатов сбора метрик | SQL запрос | Пример использования Grafana-prometheus:postgres_exporter |
---|---|---|---|---|---|
pg_stat_database_blks_hit | 1 раз /10 сек | Сколько раз дисковые блоки обнаруживались в буферном кеше, так что чтение с диска не потребовалось | Количество блоков прочитанных из кеша в этой базе данных | Значение из pg_stat_database | blks_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_read | 1 раз /10 сек | Количество прочитанных дисковых блоков в этой базе данных | Количество прочитанных дисковых блоков в этой базе данных | Значение из pg_stat_database | – |
pgse_statio_user_tables_heap_blks_hit | 1 раз /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_read | 1 раз /10 сек | Количество дисковых блоков, прочитанных из этой таблицы | Количество дисковых блоков, прочитанных из этой таблицы | Cм. ячейку выше | Cм. ячейку выше |
pgse_statio_user_tables_idx_blks_hit | 1 раз /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_read | 1 раз /10 сек | Количество дисковых блоков, прочитанных из этого индекса | Количество дисковых блоков, прочитанных из этого индекса | Cм. ячейку выше | Cм. ячейку выше |
Блокировки
Название метрики | Частота сборки метрик | Описание метрики | Описание результатов сбора метрик | SQL запрос | Пример использования Grafana-prometheus:postgres_exporter |
---|---|---|---|---|---|
pgse_stat_activity_check | 1 раз /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_count | 1 раз /10 сек | Количество блокировок всех типов, зафиксированное в этой базе данных | Количество блокировок всех типов, зафиксированное в этой базе данных | Значение из pg_locks | Блокировки: pg_locks_count Упрощенное название метрики: {{mode}} {{datname}} ![]() |
pg_stat_database_deadlocks | 1 раз /10 сек | Количество взаимных блокировок, зафиксированное в этой базе данных | Количество взаимных блокировок, зафиксированное в этой базе данных | Значение из pg_stat_database | Взаимные блокировки: idelta(pg_stat_database_deadlocks[$interval]) Упрощенное название метрики: deadlocks в {{datname}} ![]() |
Статистика по запросам
Название метрики | Частота сборки метрик | Описание метрики | Описание результатов сбора метрик | SQL запрос | Пример использования Grafana-prometheus:postgres_exporter |
---|---|---|---|---|---|
pgse_stat_statements_total_time_total_time_sec | 1 раз /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_sec | 1 раз /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_calls | 1 раз /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_time | 1 раз /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_rows | 1 раз /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_rows | 1 раз /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_band | 1 раз /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_time | 1 раз /10 сек | Топ 5 запросов с максимальным дисковым временем, запрос обогащен текстом запроса | Топ 5 запросов с максимальным дисковым временем, запрос обогащен текстом запроса | Внимание! Требуется включенный параметр track_io_timingselect 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_seconds | 1 раз /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_seconds | 1 раз /10 сек | Среднее время, затраченное на запрос, в миллисекундах | Среднее время, затраченное на запрос, по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_calls | 1 раз /10 сек | Число выполнений запроса | Число выполнений по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_rows | 1 раз /10 сек | Общее число строк, полученных или затронутых запросом | Общее число строк по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_shared_blks_hit | 1 раз /10 сек | Общее число попаданий в разделяемый кеш блоков для запроса | Общее число попаданий в разделяемый кеш блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_shared_blks_read | 1 раз /10 сек | Общее число чтений разделяемых блоков для запроса | Общее число чтений разделяемых блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_shared_blks_dirtied | 1 раз /10 сек | Общее число разделяемых блоков, «загрязненных» запросом | Общее число разделяемых блоков, «загрязненных», по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_shared_blks_written | 1 раз /10 сек | Общее число разделяемых блоков, записанных запросом | Общее число разделяемых блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_temp_blks_read | 1 раз /10 сек | Общее число чтений временных блоков для запроса | Общее число чтений временных блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_temp_blks_written | 1 раз /10 сек | Общее число записей временных блоков для запроса | Общее число записей временных блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_blk_read_time_seconds | 1 раз /10 сек | Общее время, затраченное запросом на чтение блоков, в миллисекундах | Общее время, затраченное каждым запросом на чтение блоков, в миллисекундах | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_blk_write_time_seconds | 1 раз /10 сек | Общее время, затраченное запросом на запись блоков, в миллисекундах | Общее время, затраченное каждым запросом на запись блоков, в миллисекундах | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_local_blks_hit | 1 раз /10 сек | Общее число попаданий в локальный кеш блоков для данного запроса | Общее число попаданий в локальный кеш блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_local_blks_read | 1 раз /10 сек | Общее число чтений локальных блоков для данного запроса | Общее число чтений локальных блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_local_blks_written | 1 раз /10 сек | Общее число локальных блоков, записанных данным запросом | Общее число локальных блоков по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
pg_stat_statements_local_blks_dirtied | 1 раз /10 сек | Общее число локальных блоков, «загрязненных» данным запросом | Общее число локальных блоков, «загрязненных», по каждому запросу, сохраненному в статистике | Cм. ячейку выше | Cм. ячейку выше |
Метрики etcd
Примечание:
Подробная информация по метрикам etcd приведена в официальной доку ментации.
Название метрики | Частота сборки метрик | Описание метрики | Описание результатов сбора метрик |
---|---|---|---|
etcd_server_has_leader | 1 раз /10 сек | Существует ли лидер | 1 или 0 от каждого узла кластера. 1 - существует 0 - отсутствует |
etcd_server_leader_changes_seen_total | 1 раз /10 сек | Количество подтвержденных смен лидера кластера | Количество подтвержденных смен лидера кластера |
etcd_server_proposals_applied_total | 1 раз /10 сек | Общее количество примененных консенсусных предложений | Количество примененных консенсусных предложений |
etcd_disk_wal_fsync_duration_seconds_bucket | 1 раз /10 сек | Распределение задержки fsync, вызванное процессом записи WAL-файлов | Время задержки работы fsync с диском для каждого узла кластера |
etcd_disk_backend_commit_duration_seconds_bucket | 1 раз /10 сек | Распределение задержки подтверждения вызванного процессом etcd | Время задержки, вызванное процессом etcd для каждого узла кластера |
etcd_network_peer_received_bytes_total | 1 раз /10 сек | Общее число полученных байт от членов кластера | Количество получ енных байт от членов кластера |
etcd_network_peer_sent_bytes_total | 1 раз /10 сек | Общее число отправленных байт членам кластера | Количество отправленных байт членам кластера |
etcd_network_peer_round_trip_time_seconds_bucket | 1 раз /10 сек | Гистограмма кругового обхода между членами кластера | Время кругового обхода между участниками сети |
etcd_network_client_grpc_received_bytes_total | 1 раз /10 сек | Общее число полученных байт от клиентов по gRPC | Количество полученных байт от клиентов по gRPC |
etcd_network_client_grpc_sent_bytes_total | 1 раз /10 сек | Общее число отправленных байт клиентам по gRPC | Количество отправленных байт клиентам по gRPC |
etcd_network_peer_received_failures_total | 1 раз /10 сек | Общее количество сбоев приема от узла | Количество сбоев приема от узла |
etcd_network_peer_sent_failures_total | 1 раз /10 сек | Общее количество сбоев отправки к узлу | Количество сбоев отправки к узлу |
etcd_server_proposals_failed_total | 1 раз /10 сек | Общее количество ошибочных консенсусных предложений | Количество ошибочных консенсусных предложений |
etcd_server_proposals_pending | 1 раз /10 сек | Общее количество ожидающих консенсусных предложений | Количество ожидающих консенсусных предложений |
etcd_disk_wal_fsync_duration_seconds_sum | 1 раз /10 сек | Сумма распределение задержки fsync, вызванное процессом записи WAL-файлов | Сумма распределения задержки fsync, вызванная процессом записи WAL-файлов |
etcd_disk_backend_commit_duration_seconds_sum | 1 раз /10 сек | Сумма распределение задержки подтверждения вызванного процессом etcd | Сумма распределения задержки подтверждения вызванного процессом etcd |
etcd_debugging_snap_save_total_duration_seconds_sum | 1 раз /10 сек | Сумма распределения задержки сохранения «v3.snapshot» | Сумма распределения задержки сохранения «v3.snapshot» |