On Fri, Nov 22, 2019 at 01:20:59PM +0000, Zwettler Markus (OIZ) wrote:
> I came up with the following query which should return any apply lag in 
> seconds.
> 
> select coalesce(replay_delay, 0) replication_delay_in_sec
> from (
>        select datname,
>               (
>                 select case
>                          when received_lsn = latest_end_lsn then 0
>                          else extract(epoch
>                 from now() - latest_end_time)
>                        end
>                 from pg_stat_wal_receiver
>               ) replay_delay
>        from pg_database
>        where datname = current_database()
>      ) xview;
> 
> 
> I would expect delays >0 in case SYNC or ASYNC replication is
> somehow behind. We will do a warning at 120 secs and critical at 300
> secs.

pg_stat_wal_receiver is available only on the receiver, aka the
standby so it would not really be helpful on a primary.  On top of
that streaming replication is system-wide, so there is no actual point
to look at databases either.

> Would this do the job or am I missing something here?

Here is a suggestion for Nagios: hot_standby_delay, as told in
https://github.com/bucardo/check_postgres/blob/master/check_postgres.pl
--
Michael

Attachment: signature.asc
Description: PGP signature

Reply via email to