Neyi okuyoruz
pg_stat_activity — aktif oturumlar, en uzun süren transaction, bekleyen sorgular
pg_stat_replication, pg_replication_slots, pg_stat_wal_receiver — replikasyon gecikmesi, slot birikmesi, standby durumu
pg_stat_statements — sorgu bazlı çağrı sayısı, toplam ve ortalama süre, I/O kırılımı
pg_stat_user_tables / user_indexes — ölü tuple birikimi, son vacuum/analyze, kullanılmayan index'ler
pg_locks — bloke olmuş sorgular ve kilit bekleme zincirleri
pg_stat_archiver, WAL LSN fonksiyonları, pg_ls_waldir() — arşivleme sağlığı ve WAL üretim hızı
pgstattuple / pgstatindex — tablo ve index şişmesi (günlük iş olarak)
postgresql.conf, postgresql.auto.conf ve pg_hba.conf — konfigürasyon değişikliği takibi
PostgreSQL'e özel neler yapıyor
Tuning Advisor
İş yükünüzü ölçer ve shared_buffers, work_mem, effective_cache_size gibi parametreler için gerekçeli öneriler üretir. Uygulama adımı onaya bağlıdır; ALTER SYSTEM + reload ile yapılır, restart gerektirenler ayrıca işaretlenir.
Eksik index önerileri, hipotetik doğrulama ile
Yavaş sorgulardan index adayları çıkarılır ve HypoPG ile gerçekten index oluşturmadan plan üzerindeki etkisi doğrulanır — öneri, tahmin değil ölçüme dayanır.
Autovacuum ve şişme takibi
Ölü tuple oranı, son vacuum zamanı ve transaction ID wraparound mesafesi izlenir; şişmenin ne zaman soruna dönüşeceği önceden işaretlenir.
Replikasyon ve failover görünürlüğü
Streaming ve logical replikasyon zinciri canlı haritada çizilir; slot birikmesi, standby kopması ve promotion olayları tarihsel olarak kaydedilir.
Gereken minimum yetkiler
Baseline salt-okunurdur ve üretimde güvenle verilebilir.
Ön koşullar
·shared_preload_libraries = 'pg_stat_statements' (restart gerekir) — sorgu zekâsı için
·CREATE EXTENSION pg_stat_statements; — top query / sorgu analizi
·CREATE EXTENSION pgstattuple; + GRANT EXECUTE ON FUNCTION pgstattuple(regclass), pgstatindex(text) — bloat analizi
·Opsiyonel: CREATE EXTENSION hypopg; — index önerilerinin hipotetik doğrulaması
·Agent OS kullanıcısı postgresql.conf, pg_hba.conf ve log dizinini okuyabilmeli (postgres grubuna ekleyin)
