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

时间:2017-07-13 10:24:43

标签: monitoring grafana prometheus

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

我遇到的问题是长时间运行的进程。我想知道有多少人在任何时候都在跑步,而且我似乎无法通过普罗米修斯为此找到一个好的解决方案。

进程从多个冗余应用程序运行异步,这些应用程序同时接收流量。这些过程在10分钟到几个小时之间运行,所以我最初的天真方法是在进程启动时计算一个计数器,并在进程停止时递增另一个计数器。

我在这里遇到的问题是,当Grafana中的进程以rate运算符启动时,我看到了上升,但我无法监控有多少进程在运行。

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

现在我尝试的方法是减去started - finished个计数器以进入当前运行的实例。但是,如果报告某个过程在某个时刻完成的应用程序将重新启动或在prometheus刮取度量标准之前死亡(因此我将进入0不再是基线的状态),这将很快失去同步。 / p>

有关如何处理此事的任何建议吗?

1 个答案:

答案 0 :(得分:0)

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

您可以将此添加到您的应用中,或者使用process exporter(我还没有使用过此版本)。

您甚至可以应用一个简单的shell脚本来计算进程并填充由节点收集器提供服务的文本文件(请参阅node exporter中的textfile collector)。