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;
|