Prometheus 跟踪 HA 环境中长时间运行的进程

Tig*_*ine 7 monitoring grafana prometheus

我正在运行 Prometheus 来监控我的系统,目前正在构建应用程序级指标。

我遇到的问题是长时间运行的进程。我想知道任何时候有多少个正在运行,但我似乎无法用 Prometheus 找到一个好的解决方案。

这些进程从多个同时接收流量的冗余应用程序异步运行。这些进程运行的时间在 10 分钟到几个小时之间,因此我最初的幼稚方法是每当进程启动时就增加一个计数器,并在进程停止时增加另一个计数器。

我在这里遇到的问题是,当操作员在 Grafana 中启动进程时rate,我看到进程有所增加,但我无法随时监控正在运行的进程数量。

由于两个应用程序正在管理同一进程池,因此我无法真正使用仪表来报告当前正在运行的进程数,因为进程可能会在实例 A 上启动,然后在实例 B(或任何其他正在运行的应用程序实例)上停止)。(并且进程的数量将从共享数据库请求,因此它会被夸大)。

现在我尝试的一种方法是减去started - finished计数器以获取当前正在运行的实例。但是,如果在普罗米修斯抓取指标之前报告进程在某个时刻完成的应用程序将重新启动或终止(因此我将进入 0 不再是基线的状态),那么这将很快失去同步。

关于如何处理这个问题有什么建议吗?

ahu*_*us1 0

也许您可以通过查看每台计算机上的进程列表来计算正在运行的进程数(您在问题中将其称为实例 A 和 B)。每台机器都会报告正在运行的作业数量。要显示所有机器上正在运行的作业总数,请使用 sum()。

您可以将其添加到您的应用程序中或使用进程导出器(我还没有使用过这个)。

您甚至可以应用一个简单的 shell 脚本来对进程进行计数并填充由节点收集器提供的文本文件(请参阅作为节点导出器的一部分的文本文件收集器)。