Re: sql query for postgres replication check - Mailing list pgsql-general

From Michael Paquier
Subject Re: sql query for postgres replication check
Date
Msg-id 20191125041428.GJ37821@paquier.xyz
Whole thread Raw
In response to sql query for postgres replication check  ("Zwettler Markus (OIZ)" <Markus.Zwettler@zuerich.ch>)
Responses AW: sql query for postgres replication check
List pgsql-general
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

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Trouble incrementing a column
Next
From: Mimiko
Date:
Subject: Re: Constants in the foreighn key constraints