0

我正在尝试将一组仪表添加到 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)

我曾尝试使用orandunless,但是,您拥有的仪表越多,它就会变得非常复杂。我也在使用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])

4

1 回答 1

0

就我而言,我找到了解决方法。我仍然觉得可能有更简单的方法,但这就是我想出的。

对于我想要求和的每个即时向量,我添加了一个vector(0)

vector(10) + (vector(A) OR vector(0)) + 
(vector(B) OR vector(0)) + ...
于 2019-12-23T19:10:47.740 回答