#!/usr/bin/env bash
# Kolom lag berbasis waktu di pg_stat_replication: write_lag, flush_lag,
# replay_lag. Nilainya bergantung momen pengukuran dan pasti berbeda di
# mesin Anda, jadi blok outputnya ditandai manual di index.md — jalankan
# skrip ini sendiri untuk melihat angka Anda. Skrip ini melanjutkan
# pasangan server dari siapkan-pasangan.sh + ukur-byte-lag.sh
# (standby masih menunda replay 4 detik lewat recovery_min_apply_delay).
set -eu

echo "== Aktivitas segar: 5 transaksi kecil di primary =="
psql -X -h 127.0.0.1 -p 54355 -U postgres -d toko <<'SQL'
INSERT INTO penjualan VALUES (41, 'Budi', 11000);
INSERT INTO penjualan VALUES (42, 'Siti', 22000);
INSERT INTO penjualan VALUES (43, 'Ani', 33000);
INSERT INTO penjualan VALUES (44, 'Rudi', 44000);
INSERT INTO penjualan VALUES (45, 'Budi', 55000);
SQL

echo "== Segera setelah aktivitas: WAL sudah tersambung ke standby =="
psql -X -h 127.0.0.1 -p 54355 -U postgres -d toko \
  -c "SELECT application_name, write_lag, flush_lag, replay_lag FROM pg_stat_replication;"
echo "baris di standby (5 transaksi di atas belum direplay):"
psql -X -h 127.0.0.1 -p 54356 -U postgres -d toko \
  -c "SELECT count(*) AS baris_standby FROM penjualan;"

echo "== Setelah 4,5 detik: replay_lag memuncak karena replay tertunda =="
sleep 4.5
psql -X -h 127.0.0.1 -p 54355 -U postgres -d toko \
  -c "SELECT application_name, write_lag, flush_lag, replay_lag FROM pg_stat_replication;"
echo "baris di standby kini:"
psql -X -h 127.0.0.1 -p 54356 -U postgres -d toko \
  -c "SELECT count(*) AS baris_standby FROM penjualan;"

echo "== Setelah 2 detik tanpa aktivitas: kolom lag kembali NULL =="
sleep 2
psql -X -h 127.0.0.1 -p 54355 -U postgres -d toko \
  -c "SELECT application_name, write_lag, flush_lag, replay_lag FROM pg_stat_replication;"
