我运行的作业可以处理两个数据源之间的同步。它们会发出已摄取记录数量的酒店计数器指标。
这些被推送到酒店收集器,然后最终到达 Prometheus。
每次运行都有一些与之关联的标签:accountId、jobId、runId。
这些指标会在几分钟后重置,因为它们不会再出现,因为 runId 永远不会重新出现。所以在普罗米修斯图上它们出现了大约 5 分钟,然后就消失了。
我正在尝试根据这些指标查询 Prometheus,以获取给定时间范围内摄取的记录的准确计数。我正在尝试使用它进行计费,以便我可以获得给定月份的记录计数。
简单地说,我想查询 prometheus 一个月,比如四月或五月,并获得该月看到的记录数从 0 开始的计数。
我这里有这个脚本似乎可以工作:https://gist.github.com/nickzelei/43486b05a7c58133a7aecd23f67de54d 但我担心长期的情况,或者我做的事情是否效率很低。
看起来并不应该这么困难,也许我在这里使用了错误的工具,任何建议都会很棒。
我最终以一种更简单的方式解决了这个问题,这种方式在服务器上要轻得多。 完整脚本在这里:https://gist.github.com/nickzelei/74bc7016be4cbc6041ce80585dfe2df9
简而言之,我使用的查询是:
sum(max_over_time(<metric>[1d]))
我使用
Query
方法而不是 QueryRange
来完成此操作。我编写了一个脚本,每天进行此查询,从而计算每日总数。
对于每月总计,我将日结束设置为月末,并将时间窗口更新为
[30d]
。