Ιστορικό ενεργών συνεδριών PostgreSQL - νέα επέκταση pgsentinel

Εταιρεία pgsentinel κυκλοφόρησε την επέκταση pgsentinel με το ίδιο όνομα (αποθετήριο github), το οποίο προσθέτει την προβολή pg_active_session_history στο PostgreSQL - το ιστορικό των ενεργών περιόδων σύνδεσης (παρόμοιο με το v$active_session_history της Oracle).

Στην πραγματικότητα, αυτά είναι μόνο κάθε δευτερόλεπτο στιγμιότυπο από το pg_stat_activity, αλλά υπάρχουν σημαντικά σημεία:

  1. Όλες οι συσσωρευμένες πληροφορίες αποθηκεύονται μόνο στη μνήμη RAM και η ποσότητα της μνήμης που καταναλώνεται ρυθμίζεται από τον αριθμό των τελευταίων αποθηκευμένων εγγραφών.
  2. Προστίθεται το πεδίο queryid - το ίδιο ερώτημα από την επέκταση pg_stat_statements (απαιτείται προεγκατάσταση).
  3. Προστίθεται το πεδίο top_level_query - το κείμενο του ερωτήματος από το οποίο κλήθηκε το τρέχον ερώτημα (στην περίπτωση χρήσης pl/pgsql)


Πλήρης λίστα πεδίων pg_active_session_history:

      στήλη | Τύπος --------------------------------------------- στάχτη_χρόνος | χρονική σήμανση με ημερομηνία ζώνης ώρας | όνομα δεδομένων oid | κείμενο pid | ακέραιος useysid | όνομα χρήσης oid | κείμενο εφαρμογής_όνομα | text client_addr | κείμενο client_hostname | κείμενο client_port | ακέραιος backend_start | χρονική σήμανση με ζώνη ώρας xact_start | χρονική σήμανση με ζώνη ώρας query_start | χρονική σήμανση με ζώνη ώρας state_change | χρονική σήμανση με ζώνη ώρας wait_event_type | κείμενο αναμονή_συμβάντος | κατάσταση κειμένου | κείμενο backend_xid | xid backend_xmin | xid top_level_query | ερώτηση κειμένου | ερώτημα κειμένου | bigint backend_type | κείμενο                     

Δεν υπάρχει ακόμα έτοιμο πακέτο για εγκατάσταση. Προτείνεται να κατεβάσετε τον πηγαίο κώδικα και να δημιουργήσετε τη βιβλιοθήκη μόνοι σας. Πρώτα πρέπει να εγκαταστήσετε το πακέτο "devel" για τον διακομιστή σας και να ορίσετε τη διαδρομή σε pg_config στη μεταβλητή PATH. Συλλέγουμε:

cd pgsentinel/src
κάνω
make install

Προσθήκη παραμέτρων στο postgres.conf:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = όλα

# αριθμός πρόσφατων εγγραφών που διατηρούνται στη μνήμη
pgsentinel_ash.max_entries = 10000

Επαναλάβετε τη φόρτωση της PostgreSQL και δημιουργήστε μια επέκταση:

Δημιουργία επέκτασης pgsentinel.

Οι συσσωρευμένες πληροφορίες μας επιτρέπουν να απαντήσουμε σε ερωτήσεις όπως:

  • Σε ποιες προσδοκίες αφιέρωσαν περισσότερο χρόνο οι συνεδρίες;
  • Ποιες συνεδρίες ήταν οι πιο ενεργές;
  • Ποια αιτήματα ήταν τα πιο ενεργά;

Μπορείτε, φυσικά, να λάβετε απαντήσεις σε αυτές τις ερωτήσεις χρησιμοποιώντας ερωτήματα SQL, αλλά είναι πιο βολικό να το δείτε καθαρά στο γράφημα, επισημαίνοντας τα χρονικά διαστήματα που σας ενδιαφέρουν με το ποντίκι. Μπορείτε να το κάνετε με ένα δωρεάν πρόγραμμα PASH Viewer (μπορείτε να κατεβάσετε τα συλλεγμένα δυαδικά αρχεία στην ενότητα Δελτία).

Κατά την εκκίνηση, το PASH-Viewer (ξεκινώντας από την έκδοση 0.4.0) ελέγχει για την παρουσία της προβολής pg_active_session_history και εάν υπάρχει, φορτώνει ολόκληρο το συσσωρευμένο ιστορικό από αυτό και συνεχίζει την ανάγνωση νέων εισερχόμενων δεδομένων, ενημερώνοντας το γράφημα κάθε 15 δευτερόλεπτα.

Ιστορικό ενεργών συνεδριών PostgreSQL - νέα επέκταση pgsentinel

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο