{"id":38073,"date":"2019-10-31T22:21:32","date_gmt":"2019-10-31T19:21:32","guid":{"rendered":"https:\/\/prohoster.info\/blog\/istoriya-aktivnyh-sessij-v-postgresql-novoe-rasshirenie-pgsentinel\/"},"modified":"2019-10-31T22:21:32","modified_gmt":"2019-10-31T19:21:32","slug":"istoriya-aktivnyh-sessij-v-postgresql-novoe-rasshirenie-pgsentinel","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/istoriya-aktivnyh-sessij-v-postgresql-novoe-rasshirenie-pgsentinel","title":{"rendered":"Historique des sessions actives dans PostgreSQL - nouvelle extension pgsentinel","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Soci\u00e9t\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.pgsentinel.com\/\">pgsentinel<\/a><\/noindex> a lanc\u00e9 une extension homonyme pgsentinel (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pgsentinel\/pgsentinel\">d\u00e9p\u00f4t github<\/a><\/noindex>), ajoutant \u00e0 PostgreSQL la vue pg_active_session_history \u2014 l'historique des sessions actives (similaire \u00e0 la v$active_session_history d'Oracle).<\/p>\n<p>En r\u00e9alit\u00e9, ce sont simplement des instantan\u00e9s par seconde de pg_stat_activity, mais il y a des points importants :<\/p>\n<ol>\n<li>Toutes les informations accumul\u00e9es ne sont stock\u00e9es qu'en m\u00e9moire vive, et le volume de m\u00e9moire consomm\u00e9 est r\u00e9gul\u00e9 par le nombre des derni\u00e8res entr\u00e9es stock\u00e9es.<\/li>\n<li>Un champ queryid est ajout\u00e9 \u2014 ce fameux queryid de l'extension pg_stat_statements (installation pr\u00e9alable requise).<\/li>\n<li>Un champ top_level_query est ajout\u00e9 \u2014 le texte de la requ\u00eate \u00e0 partir de laquelle la requ\u00eate actuelle a \u00e9t\u00e9 appel\u00e9e (en cas d'utilisation de pl\/pgsql)<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Liste compl\u00e8te des champs de pg_active_session_history :<\/b><\/p>\n<pre>\n      Column      |           Type           \n------------------+--------------------------\n ash_time         | timestamp with time zone \n datid            | oid                      \n datname          | text                     \n pid              | integer                  \n usesysid         | oid                      \n usename          | text                     \n application_name | text                     \n client_addr      | text                     \n client_hostname  | text                     \n client_port      | integer                  \n backend_start    | timestamp with time zone \n xact_start       | timestamp with time zone \n query_start      | timestamp with time zone \n state_change     | timestamp with time zone \n wait_event_type  | text                     \n wait_event       | text                     \n state            | text                     \n backend_xid      | xid                      \n backend_xmin     | xid                      \n top_level_query  | text                     \n query            | text                     \n queryid          | bigint                   \n backend_type     | text                     \n<\/pre>\n<p>Il n'y a pas encore de paquet pr\u00eat \u00e0 \u00eatre install\u00e9. Il est sugg\u00e9r\u00e9 de t\u00e9l\u00e9charger les sources et de compiler la biblioth\u00e8que soi-m\u00eame. L'installation d'un paquet 'devel' pour votre serveur et l'ajout du chemin vers pg_config dans la variable PATH sont requises. Compilation :<\/p>\n<blockquote><p>cd pgsentinel\/src<br \/>\nmake<br \/>\nmake install<\/p><\/blockquote>\n<p>\nAjoutez les param\u00e8tres dans postgres.conf :<\/p>\n<blockquote><p>shared_preload_libraries = 'pg_stat_statements,pgsentinel'<br \/>\ntrack_activity_query_size = 2048<br \/>\npg_stat_statements.track = all<\/p>\n<p># \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439<br \/>\npgsentinel_ash.max_entries = 10000<\/p><\/blockquote>\n<p>\nRed\u00e9marrez PostgreSQL et cr\u00e9ez l'extension :<\/p>\n<blockquote><p>create extension pgsentinel;<\/p><\/blockquote>\n<p>\nLes informations accumul\u00e9es permettent de r\u00e9pondre \u00e0 des questions telles que :<\/p>\n<ul>\n<li>Sur quelles attentes de session a-t-on pass\u00e9 le plus de temps ?<\/li>\n<li>Quelles sessions ont \u00e9t\u00e9 les plus actives ?<\/li>\n<li>Quelles requ\u00eates ont \u00e9t\u00e9 les plus actives ?<\/li>\n<\/ul>\n<p>\nBien s\u00fbr, on peut obtenir des r\u00e9ponses \u00e0 ces questions \u00e0 l'aide de requ\u00eates SQL, mais il est plus simple de les visualiser sur un graphique en s\u00e9lectionnant avec la souris les intervalles de temps qui vous int\u00e9ressent. Vous pouvez le faire avec le logiciel gratuit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dbacvetkov\/PASH-Viewer\">PASH-Viewer<\/a><\/noindex> (les binaires compil\u00e9s peuvent \u00eatre t\u00e9l\u00e9charg\u00e9s dans la section <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dbacvetkov\/PASH-Viewer\/releases\">Releases<\/a><\/noindex>).<\/p>\n<p>Lorsque vous d\u00e9marrez PASH-Viewer (\u00e0 partir de la version 0.4.0), il v\u00e9rifie l'existence de la vue pg_active_session_history et, si elle est pr\u00e9sente, il charge toute l'historique accumul\u00e9 et continue de lire les nouvelles donn\u00e9es entrantes, mettant \u00e0 jour le graphique toutes les 15 secondes.<\/p>\n<p><img decoding=\"async\" alt=\"Historique des sessions actives dans PostgreSQL - nouvelle extension pgsentinel\" src=\"\/wp-content\/uploads\/2019\/09\/2517772983f6ad87c0a895c190043ae1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/416909\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f pgsentinel \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 pgsentinel (\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 github), \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0432 PostgreSQL \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 pg_active_session_history \u2014 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 (\u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \u043e\u0440\u0430\u043a\u043b\u043e\u0432\u043e\u0439 v$active_session_history). \u041f\u043e \u0441\u0443\u0442\u0438, \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e-\u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u0435\u0436\u0435\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u044b\u0435 \u0441\u043d\u0438\u043c\u043a\u0438 \u0438\u0437 pg_stat_activity, \u043d\u043e \u0435\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b: \u0412\u0441\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0451\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435 queryid \u2014 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28580,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f pgsentinel \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 pgsentinel (\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/istoriya-aktivnyh-sessij-v-postgresql-novoe-rasshirenie-pgsentinel\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 \u0432 PostgreSQL \u2014 \u043d\u043e\u0432\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 pgsentinel | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f pgsentinel \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 pgsentinel (\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/istoriya-aktivnyh-sessij-v-postgresql-novoe-rasshirenie-pgsentinel\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:21:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:21:32+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Historique des sessions actives dans PostgreSQL \u2014 nouvelle extension pgsentinel | ProHoster","description":"La soci\u00e9t\u00e9 pgsentinel a lanc\u00e9 l'extension \u00e9ponyme pgsentinel (","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/istoriya-aktivnyh-sessij-v-postgresql-novoe-rasshirenie-pgsentinel","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u0435\u0441\u0441\u0438\u0439 \u0432 PostgreSQL \u2014 \u043d\u043e\u0432\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 pgsentinel | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f pgsentinel \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043e\u0434\u043d\u043e\u0438\u043c\u0451\u043d\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 pgsentinel (","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/istoriya-aktivnyh-sessij-v-postgresql-novoe-rasshirenie-pgsentinel","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:21:32+00:00","article:modified_time":"2019-10-31T19:21:32+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38073","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 20:21:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:15:23","updated":"2026-01-23 20:21:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/38073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=38073"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/38073\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/28580"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=38073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=38073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=38073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}