【问题标题】:Actual timestamp vs Scrape timestamp in Prometheus time seriesPrometheus 时间序列中的实际时间戳与 Scrape 时间戳
【发布时间】:2020-09-10 19:30:33
【问题描述】:
这是一个例子:
刮擦间隔设置为 30 秒。应用在一个抓取周期内生成以下时间序列:
- 名称:Counter_1,值:2,时间戳1590285009
- 名称:Counter_1,值:4,时间戳 1590285019(第一个后 10 秒)
- 名称:Counter_1,值:0,时间戳 1590285029(第二个后 10 秒)
在这种情况下会抓取哪些时间序列?全部三个,还是将时间戳设置为抓取时间戳的最新一个?
【问题讨论】:
标签:
prometheus
prometheus-node-exporter
【解决方案1】:
它将存储抓取时的可用数据,以及抓取时间戳。因此,这取决于在步骤 1-3 之间何时发生刮擦。
听起来您的意思是它仅在所有这些之后才适用,因此将存储带有刮擦时间时间戳的#3。
例如,如果抓取发生在第 1 步和第 2 步之间,则将存储来自 #1 的指标。
一般来说,当指标被“导出”时,它们可以用于抓取,它们没有时间戳。客户端没有“历史”概念(只有服务器有),只有最新的可供读取。它是一个键值向量映射到一个数值(如果你自己刮,你可以看到格式,例如curl http://localhost:9100/metrics代表典型的node_exporter)。服务器定期抓取目标并存储当时可用的内容及其抓取时间戳。
【解决方案2】:
Prometheus 附加到样本的时间戳是 GET 发送的时间