Historique des sessions actives PostgreSQL - nouvelle extension pgsentinel

société pgsentinelle a publié l'extension pgsentinel du même nom (référentiel github), 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 :

  1. 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.
  2. Le champ queryid est ajouté - le même queryid de l'extension pg_stat_statements (pré-installation requise).
  3. 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
faire
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 Visualiseur PASH (vous pouvez télécharger les binaires collectés dans la section de Presse).

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.

Historique des sessions actives PostgreSQL - nouvelle extension pgsentinel

Source: habr.com

Ajouter un commentaire