Skip to content

PostgreSQL replication lag alert

Нужно ловить момент, когда реплика начала отставать от мастера больше чем на 10 секунд.

Рецепт

sql
-- На standby-реплике; экспонировать как HTTP endpoint и мониторить
SELECT
  CASE WHEN pg_is_in_recovery()
       AND EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp())) > 10
    THEN 'lag'
    ELSE 'ok'
  END AS status;

То же самое в Enterno.io

Оберните SQL в HTTP-эндпойнт (/replication-status → "ok"/"lag") и направьте HTTP-монитор Enterno на него — alert-правило "не 200 или тело ≠ ok".

Настроить HTTP monitor → ← Все рецепты