使用Prometheus检查新行是否插入Postgresql数据库

问题描述 投票:0回答:1

我有一个 postgresql 数据库,我想在其中监视 error_log 表中出现的新行。我想为此使用普罗米修斯。我想知道这将如何运作。我想出了两种不同的解决方案: a) Prometheus 每 30 秒查询一次数据库,并检查最后一分钟是否出现了新条目。如果找到一行,它会发送一条消息 b) Prometheus 每 30 秒查询一次数据库并检查记录数。如果与之前检查的号码不同,则会发送消息

解决方案 b) 对我来说似乎更好,因为 a) 它不能保证我总是会收到通知(例如,如果 Prometheus 运行中断,将其限制为检查最后一分钟会导致我跳过一些行,此外,有时我可能会收到 2 条消息而不是 1)。那么 b) 会起作用吗?这与 Prometheus 工作的假设一致吗?

postgresql prometheus
1个回答
0
投票

是的,解决方案(b)更符合Prometheus的设计原则。 Prometheus 的工作原理是定期抓取指标并存储时间序列数据。通过跟踪表中的总行数并将其与之前的抓取进行比较,您可以可靠地检测更改。确保通过自定义导出器或与 Prometheus 兼容的监控工具(例如 PostgreSQL Exporter)将行计数公开为指标。此方法避免了 Prometheus 停机期间的数据间隙或重复通知,并确保与其基于拉取的模型的一致性。

© www.soinside.com 2019 - 2024. All rights reserved.