I'd like to request the following enhancement to enable better monitoring of a 
PostgreSQL cluster.

I propose adding a column to "pg_stat_archiver" to determine how many WAL logs 
are waiting to be archived.  This would enable external monitoring systems to 
query the status via SQL (without being a superuser) and alert when an 
excessive number of WAL logs are waiting to be archived. That way intervention 
can be performed before an out-of-space condition occurs.

I've implemented it as a separate function below, but would rather have it 
built in to postgres.

Thanks,
Rob Brucks


CREATE OR REPLACE FUNCTION
wal_archives_pending_func(OUT wal_archives_pending int) AS $$
  DECLARE result record;
  BEGIN
    SELECT count(*) as count
      INTO result
      FROM (SELECT pg_ls_dir('pg_xlog/archive_status')) a
     WHERE pg_ls_dir ~ '[0-9A-F]{24}.ready';
    wal_archives_pending := result.count;
  END;
$$
LANGUAGE plpgsql
VOLATILE
SECURITY DEFINER;

Reply via email to