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
Ă  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 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

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster