如何使用 Prometheus 准确跟踪某个时间范围内的计数器指标?

问题描述 投票:0回答:1

设置

我运行的作业可以处理两个数据源之间的同步。它们会发出已摄取记录数量的酒店计数器指标。

这些被推送到酒店收集器,然后最终到达 Prometheus。

每次运行都有一些与之关联的标签:accountId、jobId、runId。

这些指标会在几分钟后重置,因为它们不会再出现,因为 runId 永远不会重新出现。所以在普罗米修斯图上它们出现了大约 5 分钟,然后就消失了。

问题

我正在尝试根据这些指标查询 Prometheus,以获取给定时间范围内摄取的记录的准确计数。我正在尝试使用它进行计费,以便我可以获得给定月份的记录计数。

简单地说,我想查询 prometheus 一个月,比如四月或五月,并获得该月看到的记录数从 0 开始的计数。

我这里有这个脚本似乎可以工作:https://gist.github.com/nickzelei/43486b05a7c58133a7aecd23f67de54d 但我担心长期的情况,或者我做的事情是否效率很低。

看起来并不应该这么困难,也许我在这里使用了错误的工具,任何建议都会很棒。

go prometheus metrics promql otel
1个回答
0
投票

我最终以一种更简单的方式解决了这个问题,这种方式在服务器上要轻得多。 完整脚本在这里:https://gist.github.com/nickzelei/74bc7016be4cbc6041ce80585dfe2df9

简而言之,我使用的查询是:

sum(max_over_time(<metric>[1d]))

我使用

Query
方法而不是
QueryRange
来完成此操作。我编写了一个脚本,每天进行此查询,从而计算每日总数。

对于每月总计,我将日结束设置为月末,并将时间窗口更新为

[30d]

© www.soinside.com 2019 - 2024. All rights reserved.