- PVSM.RU - https://www.pvsm.ru -
Компания pgsentinel [1] выпустила одноимённое расширение pgsentinel (репозиторий github [2]), добавляющее в PostgreSQL представление pg_active_session_history — историю активных сессий (по аналогии с оракловой v$active_session_history).
По сути, это просто-напросто ежесекундные снимки из pg_stat_activity, но есть важные моменты:
Column | Type
------------------+--------------------------
ash_time | timestamp with time zone
datid | oid
datname | text
pid | integer
usesysid | oid
usename | text
application_name | text
client_addr | text
client_hostname | text
client_port | integer
backend_start | timestamp with time zone
xact_start | timestamp with time zone
query_start | timestamp with time zone
state_change | timestamp with time zone
wait_event_type | text
wait_event | text
state | text
backend_xid | xid
backend_xmin | xid
top_level_query | text
query | text
queryid | bigint
backend_type | text
Для установки добавьте параметры в postgres.conf:
shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = all# количество удерживаемых в памяти последних записей
pgsentinel_ash.max_entries = 10000
Затем перезагрузите PostgreSQL и создайте расширение:
create extension pgsentinel;
Накопленная информация позволяет ответить на такие вопросы, как:
Получить ответы на эти вопросы можно, конечно, SQL-запросами, но удобнее увидеть это наглядно на графике, выделяя мышкой интересуемые интервалы времени. Вы можете сделать это с помощью бесплатной программы PASH-Viewer [3] (скачать собранные бинари можно в разделе Releases [4]).
При старте PASH-Viewer (начиная с версии 0.4.0) проверяет наличие представления pg_active_session_history и если оно есть, то загружает из него всю накопленную историю и продолжает считывать новые поступающие данные, обновляя график раз в 15 секунд.
Автор: Дмитрий Цветков
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/postgresql/286047
Ссылки в тексте:
[1] pgsentinel: https://www.pgsentinel.com/
[2] репозиторий github: https://github.com/pgsentinel/pgsentinel
[3] PASH-Viewer: https://github.com/dbacvetkov/PASH-Viewer
[4] Releases: https://github.com/dbacvetkov/PASH-Viewer/releases
[5] Источник: https://habr.com/post/416909/?utm_source=habrahabr&utm_medium=rss&utm_campaign=416909
Нажмите здесь для печати.