PostgreSQL активдүү сессия тарыхы - жаңы pgsentinel кеңейтүү

компания pgsentinel ошол эле аталыштагы pgsentinel кеңейтүүсүн чыгарды (github репозиторий), бул PostgreSQLге pg_active_session_history көрүнүшүн кошот — жигердүү сессиялардын тарыхы (Oracle's v$active_session_history сыяктуу).

Негизинен, бул pg_stat_activityден секунданын секундасына тартылган сүрөттөр, бирок маанилүү жагдайлар бар:

  1. Бардык топтолгон маалымат RAMда гана сакталат, ал эми эстутумдун сарпталган көлөмү акыркы сакталган жазуулардын саны менен жөнгө салынат.
  2. Queryid талаасы кошулду - pg_stat_statements кеңейтүүсүнөн ошол эле queryid (алдын ала орнотуу талап кылынат).
  3. Top_level_query талаасы кошулду - учурдагы сурам чакырылган суроонун тексти (эгерде pl/pgsql колдонулса)


pg_active_session_history талааларынын толук тизмеси:

      Мамыча | Тип -----------------+-------------------- ash_time | убакыт алкагы менен убакыт белгиси datid | oid datename | text pid | integer usesysid | oid usename | текст колдонмонун_аты | text client_addr | text client_hostname | text client_port | integer backend_start | убакыт алкагы xact_start | менен убакыт белгиси убакыт алкагы query_start | менен убакыт белгиси убакыт алкагынын абалын_өзгөртүү менен убакыт белгиси | убакыт алкагы wait_event_type | менен убакыт белгиси text wait_event | текст абалы | text backend_xid | xid backend_xmin | xid top_level_query | текст суроо | text queryid | bigint backend_type | текст                     

Азырынча орнотуу үчүн даяр пакет жок. Булактарды жүктөп алып, китепкананы өзүңүз чогултуу сунушталат. Сиз адегенде сервериңиз үчүн “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 = бардыгы

# эстутумда сакталган акыркы жазуулардын саны
pgsentinel_ash.max_entries = 10000

PostgreSQLди кайра иштетиңиз жана кеңейтүүнү түзүңүз:

pgsentinel кеңейтүүсүн түзүү;

Топтолгон маалымат бизге төмөнкүдөй суроолорго жооп берүүгө мүмкүндүк берет:

  • Кайсы күтүү сеанстарына көбүрөөк убакыт короттуңуз?
  • Кайсы сессиялар эң активдүү болду?
  • Кайсы кайрылуулар эң активдүү болду?

Сиз, албетте, бул суроолорго жоопторду SQL сурамдарынын жардамы менен ала аласыз, бирок аны чычкан менен кызыктырган убакыт аралыгын бөлүп көрсөтүү менен графиктен визуалдык түрдө көрүү ыңгайлуураак. Сиз муну акысыз программа менен кыла аласыз PASH-Viewer (бөлүмдөн чогултулган бинарларды жүктөп алсаңыз болот релиздер).

Баштап жатканда, PASH-Viewer (0.4.0 версиясынан баштап) pg_active_session_history көрүнүшүнүн бар-жоктугун текшерет жана ал бар болсо, андан бардык топтолгон тарыхты жүктөйт жана графикти ар бир 15 секунд сайын жаңыртып, жаңы келген маалыматтарды окууну улантат.

PostgreSQL активдүү сессия тарыхы - жаңы pgsentinel кеңейтүү

Source: www.habr.com

Комментарий кошуу