我将Prometheus与我的spring Boot 应用程序集成。指标通过micrometer暴露给Prometheus。如果Prometheus关闭(它没有提取指标数据),2分钟后我重启Prometheus,但我可以在Prometheus时间序列图中看到此关闭时间段内的所有数据。因此,即使Prometheus没有提取数据,micrometer也必须将这些数据存储在内存中。
我的问题是,如果不拉取数据,它会存储数据多久。还有,我可以手动配置吗?
我将Prometheus与我的spring Boot 应用程序集成。指标通过micrometer暴露给Prometheus。如果Prometheus关闭(它没有提取指标数据),2分钟后我重启Prometheus,但我可以在Prometheus时间序列图中看到此关闭时间段内的所有数据。因此,即使Prometheus没有提取数据,micrometer也必须将这些数据存储在内存中。
我的问题是,如果不拉取数据,它会存储数据多久。还有,我可以手动配置吗?
1条答案
按热度按时间a64a0gku1#
你的问题的假设有点不正确:如果Prometheus“错过”了一些刮擦,这个数据将不会被获得。Prometheus刮擦指标页面上存在的指标,并将它们与刮擦时间相关联。1
你很可能被过时度欺骗了:当你请求数据时,Prometheus会返回你最近5分钟内的实际数据,如果它存在的话。2因此,如果你的Prometheus示例关闭了两分钟,你不会看到缺少指标的区域,因为它会被过时度“吞噬”。
Micrometer反过来只存储和公开每个时间序列的当前度量值。
一曰:Prometheus的度量格式允许在特定时间内暴露度量,因此理论上一些出口商可以从“丢失”的刮擦中反馈度量,但不建议这样做,千分尺也不使用。2:有几个例外,在提供的链接中描述,但这些都超出了这个问题的范围。