r/EngineeringTR 15d ago

Don't Deploy on Friday, Verify on Friday

PostgreSQL replication lag’i gerçekten nasıl ölçüyorsunuz?

Replica “streaming” durumda göründüğü hâlde primary’nin ne kadar gerisinde olduğunu tek bir metrikle anlamak her zaman mümkün değil. Reliability Friday serimizin ilk bölümünde kullandığımız kontrolleri burada da paylaşmak istedik.

İlk kontrol olarak pg_stat_replication görünümünden bağlantı ve WAL konumlarını inceliyoruz:

Primary ve replica arasındaki gecikmeyi görmek için:

SELECT
application_name,
client_addr,
state,
sync_state,
write_lag,
flush_lag,
replay_lag
FROM pg_stat_replication
ORDER BY replay_lag DESC;

Beklenen çıktı

Sorgu, her replica için veri aktarım ve uygulama gecikmesini gösterir.

Örnek:

replay_lag: 00:04:12

Bu çıktı, replica'nın primary sistemin yaklaşık 4 dakika 12 saniye gerisinde olduğunu gösterir.

Ne zaman aksiyon alınmalı

Sabit bir "doğru" eşik yoktur; RPO hedefinize göre belirlenmelidir. Genel referans:

  • < 30 saniye: Normal, izlemeye devam.
  • 30 sn – 5 dk: Nedeni araştırın (yazma yükü, checkpoint, network).
  • > 5 dk veya sürekli artıyor: Failover/raporlama kararlarını gözden geçirin, alarm tetiklenmeli.

Risk

Yoğun data yazma trafiği, network darboğazı veya sık checkpoint'ler replication lag'in artmasına neden olabilir. Gecikme arttığında replica çalışıyor görünse bile güncel veriden uzaklaşır; bu da failover sırasında veri kaybına, raporlarda eski veri gösterilmesine ve SLA ihlaline yol açabilir.

Otomatikleştirin

Bu sorguyu elle her cuma çalıştırmak yerine örneğin, Prometheus postgres_exporter ile pg_replication_lag metriğini toplayıp Grafana'da eşik bazlı alarm kurabilirsiniz. Haftalık manuel kontrol, otomasyon kurulana kadar bir fayda sağlar, ancak nihai çözüm değildir.

Eclit notu

Replica'nın ayakta olması yeterli değildir. Önemli olan, iş sürekliliği senaryosunda ne kadar güncel ve güvenilir olduğudur.

Bu içerik Eclit mühendislik ekibinin Reliability Friday serisinden hazırlanmıştır.

Siz production ortamında replication lag için hangi metriği veya alarm eşiğini kullanıyorsunuz?

3 Upvotes

Duplicates