Riwayat sesi aktif PostgreSQL - ekstensi pgsentinel baru

perusahaan halsentinel merilis ekstensi pgsentinel dengan nama yang sama (repositori github), yang menambahkan tampilan pg_active_session_history ke PostgreSQL β€” riwayat sesi aktif (mirip dengan v$active_session_history milik Oracle).

Pada dasarnya, ini hanyalah cuplikan detik demi detik dari pg_stat_activity, tetapi ada poin penting:

  1. Semua informasi yang terakumulasi hanya disimpan dalam RAM, dan jumlah memori yang dikonsumsi diatur oleh jumlah catatan yang terakhir disimpan.
  2. Bidang queryid ditambahkan - queryid yang sama dari ekstensi pg_stat_statements (diperlukan pra-instalasi).
  3. Bidang top_level_query ditambahkan - teks kueri yang menjadi asal pemanggilan kueri saat ini (jika menggunakan pl/pgsql)


Daftar lengkap bidang pg_active_session_history:

      Kolom | Ketik ----+---------- ash_time | stempel waktu dengan tanggal zona waktu | nama tanggal oid | teks pid | bilangan bulat menggunakan sysid | oid nama pengguna | teks nama_aplikasi | teks klien_addr | teks nama_klien_host | teks client_port | bilangan bulat backend_start | stempel waktu dengan zona waktu xact_start | stempel waktu dengan zona waktu query_start | stempel waktu dengan zona waktu state_change | stempel waktu dengan zona waktu wait_event_type | teks tunggu_acara | status teks | teks backend_xid | xid backend_xmin | xid kueri_level_atas | permintaan teks | teks kueriid | tipe_backend besar | teks                     

Belum ada paket siap pakai untuk instalasi. Disarankan untuk mengunduh sumber dan merakit sendiri perpustakaannya. Pertama-tama Anda perlu menginstal paket β€œdevel” untuk server Anda dan mengatur jalur ke pg_config di variabel PATH. Kami mengumpulkan:

cd pgsentinel/src
membuat
make install

Tambahkan parameter ke postgres.conf:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = semua

# jumlah catatan terkini yang disimpan dalam memori
pgsentinel_ash.max_entries = 10000

Mulai ulang PostgreSQL dan buat ekstensi:

buat ekstensi pgsentinel;

Akumulasi informasi memungkinkan kami menjawab pertanyaan seperti:

  • Sesi menunggu apa yang paling sering Anda habiskan?
  • Sesi manakah yang paling aktif?
  • Permintaan apa yang paling aktif?

Anda tentu saja bisa mendapatkan jawaban atas pertanyaan-pertanyaan ini menggunakan kueri SQL, tetapi akan lebih mudah untuk melihatnya secara visual pada grafik dengan menyorot interval waktu yang diinginkan dengan mouse. Anda dapat melakukan ini dengan program gratis Penampil PASH (Anda dapat mengunduh binari yang dikumpulkan di bagian ini Pers).

Saat memulai, PASH-Viewer (mulai dari versi 0.4.0) memeriksa keberadaan tampilan pg_active_session_history dan jika ada, ia memuat seluruh akumulasi riwayat darinya dan terus membaca data baru yang masuk, memperbarui grafik setiap 15 detik.

Riwayat sesi aktif PostgreSQL - ekstensi pgsentinel baru

Sumber: www.habr.com

Tambah komentar