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:如何收集临时进程的内存消耗指标?的主要内容,如果未能解决你的问题,请参考以下文章