1

我们有启用了微米指标收集的 Spring 应用程序,并且这些指标在一定延迟后由 Prometheus 服务器收集。由于指标是时间序列数据,我的问题是在 Spring 应用程序中收集的指标即使在复制到 Prometheus 后仍会保留在堆中,如果此类时间序列数据继续增长,那么堆将耗尽-内存不是吗?任何人都对微米指标内存保留有一点了解,请告诉我们。

4

1 回答 1

2

监控方法有责任分离。我们至少可以说出其中两个:

1. 了解当前申请状态。

这是 Spring 应用程序的责任。它应该知道当前时间的所有状态和指标。应用程序本身没有时间序列数据。您无法得到“一小时前的应用程序指标是什么?”之类的信息。,因为 Spring 甚至几秒钟前都不知道应用程序的状态是什么。

2. 收集申请状态历史。

这就是普罗米修斯来的地方。它从应用程序中抓取“当前”指标,并将其映射到当前时间戳。通过这种方式,它构建了一个时间序列,因此您可以询问 Prometheus “一小时前的应用程序指标是什么?” .


换句话说,在 Spring 应用程序的堆中只存储当前状态,没有任何历史记录。正因为如此,不需要清理。

于 2019-07-23T08:38:54.520 回答