我们已经延迟了复制(例如2h)和普罗米修斯的监测。
Prometheus执行查询以获得复制滞后:
SELECT CASE WHEN NOT pg_is_in_recovery() THEN 0 ELSE GREATEST (0, EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp()))) END AS lag对于延迟复制,则返回复制延迟,如7200 (2h复制延迟)。
我想这样修改这个请求:
SELECT CASE WHEN NOT pg_is_in_recovery() THEN 0 ELSE GREATEST (0, EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp() - PG_GET_recovery_min_apply_delay()))) END AS lag但是,我无法找到如何通过SQL获得当前的recovery_min_apply_delay值。
有人知道怎么弄吗?
发布于 2022-10-01 13:09:32
https://www.postgresql.org/docs/14/functions-admin.html
您需要current_setting,它执行您期望的任务,但返回一个文本值(因为所有设置都可以表示为文本)。
https://stackoverflow.com/questions/73917879
复制相似问题