我有多个 RRD 数据库,每个数据库都包含从不同位置观察到的有关服务可用性的不完整数据。它们仅记录100
服务是否正常运行或0
停机。
我想制作一个图表来显示该服务是否可用任何位置,只需检查其中一个 RRD 中是否有该时间段内的任何数据即可。
我正在尝试使用 CDEF 来执行此操作,它使用 MAXNAN 来查找我的平均数据源的最大值 - 这是一个简化的示例:
rrdtool graph /tmp/graph.png -a PNG \
--start=1427213255 \
--end=1427224055 \
--upper-limit=100 \
--lower-limit=0 \
--rigid \
DEF:d0=/tmp/location1.rrd:available:AVERAGE \
DEF:d1=/tmp/location2.rrd:available:AVERAGE \
CDEF:agg=d0,d1,MAXNAN \
AREA:agg#00DD00:availability
这会产生错误
ERROR: invalid rpn expression in: d0,d1,MAXNAN
我哪里做错了?
答案1
通常情况下,我会写一个 StackOverflow 问题,然后在提交之前找到答案。但这次,答案就在提交之后出现了。已添加 MAXNAN在 rrdtool 1.4.9 中,我正在使用 1.4.7
我可以做类似的事情,适合我的用例
CDEF:agg=d0,0,ADDNAN,d1,0,ADDNAN,MAX
这里我只是将 NaN 视为 0,并取最大结果。