sociĂ©tĂ© a publiĂ© l'extension pgsentinel du mĂȘme nom (), qui ajoute la vue pg_active_session_history Ă PostgreSQL - l'historique des sessions actives (similaire Ă v$active_session_history d'Oracle).
En fait, ce ne sont que des instantanés toutes les secondes de pg_stat_activity, mais il y a des points importants :
- Toutes les informations accumulées sont stockées uniquement dans la RAM et la quantité de mémoire consommée est régulée par le nombre des derniers enregistrements stockés.
- Le champ queryid est ajoutĂ© - le mĂȘme queryid de l'extension pg_stat_statements (prĂ©-installation requise).
- Le champ top_level_query est ajoutĂ© - le texte de la requĂȘte Ă partir de laquelle la requĂȘte actuelle a Ă©tĂ© appelĂ©e (dans le cas de l'utilisation de pl/pgsql)
Liste complĂšte des champs pg_active_session_history :
colonne | Tapez ------------------+-------------------------- ash_time | horodatage avec fuseau horaire datĂ© | nom de donnĂ©es oid | pid de texte | entier usesysid | oid nom d'utilisateur | texte nom_application | texte adresse_client | texte nom_hĂŽte_client | texte port_client | entier backend_start | horodatage avec fuseau horaire xact_start | horodatage avec fuseau horaire query_start | horodatage avec fuseau horaire state_change | horodatage avec fuseau horaire type_Ă©vĂ©nement_attente | texte Ă©vĂ©nement_attente | Ă©tat du texte | texte backend_xid | xid backend_xmin | xid top_level_query | requĂȘte texte | ID requĂȘte texte | bigint backend_type | texte
Il n'y a pas encore de package prĂȘt pour l'installation. Il est proposĂ© de tĂ©lĂ©charger le code source et de construire vous-mĂȘme la bibliothĂšque. Vous devez d'abord installer le package "devel" pour votre serveur et dĂ©finir le chemin vers pg_config dans la variable PATH. Nous collectons :
cd pgsentinelle/src
Ă prendre une
make install
Ajoutez des paramĂštres Ă postgres.conf :
shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = tout# nombre d'enregistrements récents conservés en mémoire
pgsentinel_ash.max_entries = 10000
Rechargez PostgreSQL et créez une extension :
créer l'extension pgsentinel ;
Les informations accumulées nous permettent de répondre à des questions telles que :
- à quelles attentes les séances ont-elles consacré le plus de temps ?
- Quelles sessions ont été les plus actives ?
- Quelles demandes ont été les plus actives ?
Vous pouvez, bien sĂ»r, obtenir des rĂ©ponses Ă ces questions Ă l'aide de requĂȘtes SQL, mais il est plus pratique de le voir clairement sur le graphique, en mettant en Ă©vidence les intervalles de temps qui vous intĂ©ressent avec la souris. Vous pouvez le faire avec un programme gratuit (vous pouvez tĂ©lĂ©charger les binaires collectĂ©s dans la section ).
Au démarrage, PASH-Viewer (à partir de la version 0.4.0) vérifie la présence de la vue pg_active_session_history, et si elle existe, il charge tout l'historique accumulé à partir de celle-ci et continue à lire les nouvelles données entrantes, mettant à jour le graphique toutes les 15 secondes.

Source: habr.com
