摄取同一指标的多个时间戳?

Posted

技术标签:

【中文标题】摄取同一指标的多个时间戳?【英文标题】:Ingesting multiple timestamps of the same metric? 【发布时间】:2018-12-02 22:49:08 【问题描述】:

我将数据存储在 SQL 数据库中,我想将其复制到 prometheus 中,以使其在处理时间序列数据方面具有更好的能力。

但是,我仍然想知道将这些数据公开给 prometheus 的最佳方法是什么。

我尝试的是公开这样的文档:

# TYPE energy_amount_watt_hours counter
energy_amount_watt_hoursmeter="A",type="generator" 8275866 1529787904
energy_amount_watt_hoursmeter="B",type="grid_import" 681113 1529787903
energy_amount_watt_hoursmeter="C",type="generator" 4201804 1529787903
energy_amount_watt_hoursmeter="D",type="grid_import" 6209100 1529787612
energy_amount_watt_hoursmeter="E",type="grid_export" 9554800 1529787612
energy_amount_watt_hoursmeter="A",type="generator" 8275866 1529787606
energy_amount_watt_hoursmeter="C",type="generator" 4201804 1529787605
energy_amount_watt_hoursmeter="F",type="grid_import" 1216300 1529787602
energy_amount_watt_hoursmeter="B",type="grid_import" 681093 1529787602
energy_amount_watt_hoursmeter="A",type="generator" 8275866 1529787305
energy_amount_watt_hoursmeter="C",type="generator" 4201804 1529787304
energy_amount_watt_hoursmeter="B",type="grid_import" 681073 1529787303
energy_amount_watt_hoursmeter="A",type="generator" 8275866 1529787004

所以基本上为每个指标公开多个值,但时间戳不同。但是,这对我来说失败了,并且出现了超出范围的错误(这很烦人)。阅读文档我看到:

每一行都必须具有唯一的度量名称和标签组合。否则,摄取行为未定义。

所以这可能就是我收到这些意外错误的原因。

问题仍然存在:如何将源自 SQL 存储的数据存储在 prometheus 中。特别是:

现在不是采样时间 每个指标/标签组合可能有多个样本

【问题讨论】:

【参考方案1】:

Prometheus 的聚合模型似乎不支持这一点。它只是摄取从抓取中接收到的任何内容,并添加抓取发生瞬间的时间戳。

我没有意识到这一点,并且在直方图上遇到了一些奇怪的行为,期望我添加到客户端库中直方图对象的每个数据点都会附加该事件的时间戳,然后抓取器只是抓取所有这些数据点,保留它们的时间戳。不是这样。

在刮擦发生的确切时刻将刮擦视为系统的测量或样本。

【讨论】:

以上是关于摄取同一指标的多个时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot Actuator Prometheus 指标中包含时间戳

我可以在 Cloudwatch 仪表板的同一轴上为一个指标绘制多个统计数据吗?

Graphite 组时间戳事件(按周)

BigQuery 问题:同一访问者的时间戳如何以及为啥相同?

在 java 中使用 Prometheus 收集的时间序列的自定义时间戳

如何根据时间戳耦合同一张表中的数据点?