Prometheus:如何收集临时进程的内存消耗指标?

Posted

技术标签:

【中文标题】Prometheus:如何收集临时进程的内存消耗指标?【英文标题】:Prometheus : How to collect metrics for memory consumption of temporary processes? 【发布时间】:2019-05-12 06:23:11 【问题描述】:

我有一个异步生成不同进程的应用程序。当进程完成时,响应包含进程的详细信息,如消耗的内存等。我想根据输出为每个进程消耗的内存创建指标。 (注意:这意味着我只能在流程完成后更新指标)

从Prometheus official document 我发现当值任意上下波动时,Gauge 是此类测量的正确指标。但是使用 Gauge 的问题是度量值永远保留在那里。我只想跟踪该进程在该时刻使用的值。

当我绘制 Grafana 图表时,我看到一条稳定的线,而我只想要一瞬间的激增。任何可以最好地解决这个问题的建议。谢谢!

【问题讨论】:

【参考方案1】:

对于使用 Prometheus 无法正常抓取的短期作业,Prometheus 提供了push gateway,允许您推送指标。

在您的情况下,您的短期流程会将报告的指标推送到推送网关,而 Prometheus 将处理其余的。

【讨论】:

感谢@yamenk 的回答。但我知道这个解决方案解决了推送指标的问题。对我来说,发布指标不是问题。问题是指标应该有一个短暂的值并且应该自行重置。因为它代表了一个短暂的实体的价值。【参考方案2】:

到目前为止,这是我的解决方法:

我创建了一个 Counter 类型的指标,并且我不断将指标值增加一个绝对数(实际消耗的内存)。

在 Grafana 中,我每 1 分钟显示一次 increase()。

如果有人有更正确的解决方案,请告诉。

【讨论】:

以上是关于Prometheus:如何收集临时进程的内存消耗指标?的主要内容,如果未能解决你的问题,请参考以下文章

prometheus消耗内存问题

Python怎么如何使用临时文件?

Python怎么如何使用临时文件?

“检查指针进程”在 Postgres 中消耗更多内存。如何控制它?

markdown 如何检查进程内存消耗

列出所有进程及其当前的内存和 CPU 消耗?