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

Для просмотра текущего состояния системы в 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_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_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»