从多个 .rrd 文件添加值



问题=====>基本上有三个.rrd是为三个部门生成的。 从中我们获取三个值(最小值、最大值、当前值(并打印 ins 3x3 格式。有一个python脚本可以做到这一点。

例如 -

部门 1: 最小=10 最大值=20 cur=15

部门 2: 最小=0 最大=10 cur=5

部门3: 最小=10 最大=30 cur=25

现在我想将值(最小值、最大值、Cur(相加并在一行中打印。

例如 -

部门:最小=20 最大=60 cur=45

我面临的问题=====>无论我写什么CDEF,我都在破坏图表。 :( 这是我讨厌的部分,因为我没有收到任何错误消息。

据我了解(如果我错了,请纠正我(我绝对不能在返回图形时将值存储在程序中的任何位置。 在这种情况下添加值的正确方法是什么。

如果我描述的问题缺乏更多细节,请告诉我。

您可以使用 VDEF 而不是 CDEF'd 总和来执行此操作。

DEF:a=dept1.rrd:ds0:AVERAGE
DEF:b=dept2.rrd:ds0:AVERAGE
DEF:maxa=dept1.rrd:ds0:MAXIMUM
DEF:maxb=dept2.rrd:ds0:MAXIMUM
CDEF:maxall=maxa,maxb,+
CDEF:all=a,b,+
VDEF:maxalltime=maxall,MAXIMUM
VDEF:alltimeavg=all,AVERAGE
PRINT:maxalltime:Max=%f
PRINT:alltimeavg:Avg=%f
LINE:all#ff0000:AllDepartments

但是,您应该注意,除了最高粒度的形式外,最小和最大总数将是错误的! 这是因为max(a+b) != max(a) + max(b). 如果在存储时不计算最小/最大聚合,则在显示时粒度将消失。

例如,如果a = (1, 2, 3)b = (3, 2, 1),则max(a) + max(b) = 6;然而,在任何时间点的最大值实际上是4。 同样的问题也适用于使用min(a) + min(b)

相关内容

  • 没有找到相关文章

最新更新