Pgsentinel 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 à Oracle v $ active_session_history).
En fait, ce sont simplement 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égie par le nombre des derniers enregistrements stockés.
- Le champ queryid est ajouté - le même queryid de l'extension pg_stat_statements (une installation préliminaire est 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 (en cas d'utilisation de pl / pgsql)
Liste complète des champs pg_active_session_history: Colonne | Tapez ------------------ + -------------------------- ash_time | horodatage avec datid fuseau horaire | oid datname | texte pid | entier usesysid | oid nom d'utilisateur | texte nom_application | texte client_addr | texte client_hostname | texte client_port | 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 wait_event_type | texte wait_event | état du texte | text backend_xid | xid backend_xmin | xid top_level_query | requête de texte | text queryid | bigint backend_type | texte
Il n'y a pas encore de package prêt à installer. Il est proposé de télécharger les sources et de construire la bibliothèque vous-même. Tout d'abord, vous devez installer le package «devel» pour votre serveur et écrire le chemin d'accès à pg_config dans la variable PATH. Nous collectons:
cd pgsentinel / src
faire
faire installer
Ajoutez des paramètres à postgres.conf:
shared_preload_libraries = 'pg_stat_statements, pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = all
# nombre d'entrées récentes conservées en mémoire
pgsentinel_ash.max_entries = 10000
Redémarrez PostgreSQL et créez l'extension:
créer l'extension pgsentinel;
Les informations accumulées vous 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 requêtes étaient les plus actives?
Vous pouvez obtenir des réponses à ces questions, bien sûr, avec des requêtes SQL, mais il est plus pratique de voir cela clairement sur le graphique, en mettant en évidence les intervalles de temps avec votre souris. Vous pouvez le faire en utilisant le programme gratuit
PASH-Viewer (vous pouvez télécharger les binaires collectés dans la section
Versions ).
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, s'il y en a une, télécharge l'intégralité de l'historique accumulé et continue de lire les nouvelles données entrantes, en mettant à jour la planification toutes les 15 secondes.
