【发布时间】:2017-07-13 10:24:43
【问题描述】:
我正在运行 Prometheus 来监控我的系统,目前正在构建应用程序级指标。
我遇到的问题是长时间运行的进程。我想知道有多少人在任何时候都在运行,而我似乎无法使用 Prometheus 找到一个好的解决方案。
进程从多个同时接收流量的冗余应用程序异步运行。进程运行时间在 10 分钟到几个小时之间,所以我最初的幼稚方法是在进程启动时计数一个计数器,并在进程停止时增加另一个计数器。
我在这里遇到的问题是,当使用 rate 运算符在 Grafana 中启动进程时,我看到了上升趋势,但我无法随时监控有多少正在运行。
由于两个应用程序管理同一个进程池,我不能真正使用仪表来报告当前正在运行的进程数,因为一个进程可能在实例 A 上启动,然后在实例 B(或任何其他运行应用程序实例)。 (并且将从共享数据库中请求进程的数量,因此它会被夸大)。
现在我尝试的一种方法是减去 started - finished 计数器以获取当前正在运行的实例。但是,如果在 prometheus 删除指标之前,报告进程已完成的应用程序将重新启动或死亡,这将很快失去同步(因此我将进入 0 不再是基线的状态)。
对如何处理有什么建议吗?
【问题讨论】:
标签: monitoring grafana prometheus