我正在尝试将一组仪表添加到 vector() 中,同时仍将它们的时间序列数据保存在 Prometheus 中。
例如: 1 天的数据
Vector(10) = 10.0一整天
Gauge1 = 0.1 (0100 - 1800, else = no data)
Gauge2 = 0.2 (0200 - 1900, else = no data)
Gauge3 = 0.3 (0300 - 2000, else = no data)
Gauge4 = 0.4 (0400 - 2100, else = no data)
我的目标是获得价值:
10.0 (0000 - 0100)
10.1 (0100 - 0200)
10.3 (0200 - 0300)
10.6 (0300 - 0400)
11.0 (0400 - 1800)
10.9 (1800 - 1900)
10.7 (1900 - 2000)
10.4 (2000 - 2100)
10.0 (2100 - 0000)
我曾尝试使用or、and和unless,但是,您拥有的仪表越多,它就会变得非常复杂。我也在使用ignoring,以便能够将仪表相加。
有没有一种简单的方法可以做到这一点?如果有数据,我要做的就是将仪表添加到静态向量中。
编辑:
有关我的具体案例的更多详细信息。我有显示值的仪表seconds(自从工作完成后)。我过滤值小于的位置300(因为作业每更新一次5 minutes)。然后我拿去拿hour() + min() - secondsSinceEnd(),hour工作minute就结束了。minimum_over_time()因为它每天运行一次,所以我一整天都服用。这会导致从作业完成时开始的新值。我将此结果与预期的结束时间进行比较以获得差异。
我想将所有这些差异加起来,并将它们与所有工作的预期结束时间结合起来。
例子:
vector(12) + min_over_time((hour(timestamp(0 < JobSecondsSinceEnd{} < 300)) + round((minute(timestamp(0 < JobSecondsSinceEnd{} < 300)) - (0 < JobSecondsSinceEnd{} < 300)/60))/60)[24h:15s])