我想为记录的跟踪错误计算性能指标,这是Prometheus坚持的时间序列。我感兴趣的是:
为澄清起见,它们的计算如下:
IAE和ISE应该很简单。如果使用ITAE和ITSE,“较旧的”错误值的影响会减小,并强调新的错误值。
我已经创建了两个普罗米修斯规则:
rules:
- record: tracking_error:absolute
expr: abs(tracking_error)
- record: tracking_error:squared
expr: tracking_error*tracking_error
这些使我能够查询IAE和ISE:
# IAE
sum_over_time(tracking_error:absolute[1h])
# ISE
sum_over_time(tracking_error:squared[1h])
但是我在设计时间加权积分ITSE和ITAE的查询时遇到困难。
我当前的方法如下:
我创建了一组附加了带有时间戳记的规则:
rules:
- record: tracking_error:timestamp
expr: time()
- record: tracking_error:timestamp:labelled
expr: label_replace(tracking_error:timestamp,"errorName","someError", "","")
继而可以编写如下查询:
sum_over_time(
(
tracking_error:absolute * ignoring (endpoint,instance,job,namespace,pod,service) group_left (errorName) (tracking_error:timestamp:labelled-(tracking_error:timestamp:labelled offset 1m))
)[1m:]
)
感觉非常讨厌。这是否正确,还有其他更好的方法吗?我希望有人可以在这里帮助我。
答案 0 :(得分:0)
好得多,并且不依赖于其他规则:
sum_over_time(
(
tracking_error:absolute
*
(timestamp(tracking_error:absolute)-timestamp(tracking_error:absolute offset 1m))
)[1m:]
)