Pgsentinel telah merilis ekstensi
pgsentinel dengan nama yang sama (
repositori github ), yang menambahkan tampilan pg_active_session_history ke PostgreSQL - sejarah sesi aktif (mirip dengan Oracle v $ active_session_history).
Sebenarnya, ini hanya snapshot setiap detik dari pg_stat_activity, tetapi ada beberapa poin penting:
- Semua informasi yang terakumulasi disimpan hanya dalam RAM, dan jumlah memori yang dikonsumsi diatur oleh jumlah catatan yang disimpan terakhir.
- Kolom queryid ditambahkan - queryid yang sama dari ekstensi pg_stat_statements (diperlukan instalasi awal).
- Bidang top_level_query ditambahkan - teks kueri dari mana permintaan saat ini dipanggil (jika menggunakan pl / pgsql)
Daftar lengkap bidang pg_active_session_history: Kolom | Ketik ------------------ + -------------------------- ash_time | timestamp dengan zona waktu datid | oid datname | teks pid | integer usesysid | nama pengguna oid | text application_name | text client_addr | teks client_hostname | teks client_port | integer backend_start | timestamp dengan zona waktu xact_start | timestamp dengan zona waktu query_start | cap waktu dengan zona waktu state_change | timestamp dengan zona waktu wait_event_type | teks wait_event | status teks | teks backend_xid | xid backend_xmin | xid top_level_query | permintaan teks | permintaan teks | bigint backend_type | teks
Belum ada paket siap pakai untuk instalasi. Diusulkan untuk mengunduh sumber dan membangun perpustakaan sendiri. Pertama, Anda perlu menginstal paket "devel" untuk server Anda dan menulis path ke pg_config dalam variabel PATH. Kami mengumpulkan:
cd pgsentinel / src
membuat
buat instal
Tambahkan parameter ke postgres.conf:
shared_preload_libraries = 'pg_stat_statements, pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = semua
# Jumlah entri terbaru yang disimpan dalam memori
pgsentinel_ash.max_entries = 10000
Reboot PostgreSQL dan buat ekstensi:
membuat pgsentinel ekstensi;
Akumulasi informasi memungkinkan Anda untuk menjawab pertanyaan seperti:
- Apa harapan sesi menghabiskan paling banyak waktu?
- Sesi mana yang paling aktif?
- Pertanyaan mana yang paling aktif?
Anda dapat memperoleh jawaban atas pertanyaan-pertanyaan ini, tentu saja, dengan kueri SQL, tetapi lebih mudah untuk melihatnya dengan jelas pada grafik, menyoroti interval waktu dengan mouse Anda. Anda dapat melakukan ini menggunakan program
PASH-Viewer gratis (Anda dapat mengunduh binari yang dikumpulkan di bagian
Pers ).
Pada awal, PASH-Viewer (mulai dari versi 0.4.0) memeriksa keberadaan tampilan pg_active_session_history dan, jika ada, itu memuat seluruh akumulasi sejarah dari itu dan terus membaca data yang masuk baru, memperbarui jadwal setiap 15 detik.
