кампанія
У сутнасці, гэта проста штосекундныя здымкі з pg_stat_activity, але ёсць важныя моманты:
- Уся назапашаная інфармацыя захоўваецца толькі ў аператыўнай памяці, а спажываны аб'ём памяці рэгулюецца колькасцю апошніх захаваных запісаў.
- Дадаецца поле queryid - той самы queryid з пашырэння pg_stat_statements (патрабуецца папярэдняя ўстаноўка).
- Дадаецца поле top_level_query - тэкст запыту, з якога быў выкліканы бягучы запыт (у выпадку выкарыстання pl/pgsql)
Поўны спіс палёў pg_active_session_history:
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
Гатовага пакета для ўстаноўкі пакуль няма. Прапануецца спампаваць зыходнікі і сабраць бібліятэку самастойна. Папярэдне патрабуецца ўсталяваць "devel"-пакет для свайго сервера і ў зменную PATH прапісаць шлях да pg_config. Збіраны:
cd pgsentinel/src
рабіць
зрабіць ўстаноўку
Дадаем параметры ў 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 (пачынаючы з версіі 0.4.0) правярае наяўнасць уяўлення pg_active_session_history і калі яно ёсць, тое загружае з яго ўсю назапашаную гісторыю і працягвае счытваць новыя паступаючыя дадзеныя, абнаўляючы графік раз у 15 секунд.
Крыніца: habr.com