我有一个案例,我收集了SNMP数据并通过rrdtool存储它。
每日和每周图表正确无误,但是当我看到每月和每年时,它只显示那天不正确的图表,如下所示。
每日图表代码是:(正常工作)
/ usr / bin / rrdtool graph /opt/elitecore/ManageEngine/AppManager11/working/graphs/daily-tps.png -v“TPS”-t“TIME”DEF:tps1 = / root / graphs / Total_TPS.rrd :TPS:MAX -s -86400 CDEF:tps2 = tps1,300,* LINE1:tps2 #ff0000:TOTAL_TPS GPRINT:tps2:LAST:“Cur:%5.2lf”GPRINT:tps2:AVERAGE:“Avg:%5.2lf” GPRINT:tps2:MAX:“Max:%5.2lf”GPRINT:tps2:MIN:“Min:%5.2lf \ t \ t \ t tt”
每月图表代码为:(未按预期显示图表)
/ usr / bin / rrdtool graph /opt/elitecore/ManageEngine/AppManager11/working/graphs/monthly-tps.png -v“TPS”-t“WEEK”DEF:tps1 = / root / graphs / Total_TPS.rrd :TPS:MAX -s -2592000 CDEF:tps2 = tps1,300,* LINE1:tps2 #ff0000:TOTAL_TPS GPRINT:tps2:LAST:“Cur:%5.2lf”GPRINT:tps2:AVERAGE:“Avg:%5.2lf” GPRINT:tps2:MAX:“Max:%5.2lf”GPRINT:tps2:MIN:“Min:%5.2lf \ t \ t \ t tt”
每年图表代码为:(未按预期显示图表)
/ usr / bin / rrdtool graph /opt/elitecore/ManageEngine/AppManager11/working/graphs/yearly-tps.png -v“TPS”-t“MONTH”DEF:tps1 = / root / graphs / Total_TPS.rrd :TPS:MAX -s -31536000 CDEF:tps2 = tps1,300,* LINE1:tps2 #ff0000:TOTAL_TPS GPRINT:tps2:LAST:“Cur:%5.2lf”GPRINT:tps2:AVERAGE:“Avg:%5.2lf” GPRINT:tps2:MAX:“Max:%5.2lf”GPRINT:tps2:MIN:“Min:%5.2lf \ t \ t \ t tt”
如果我做错了,请告诉我。
你的忠实
Jignesh Dholakiya
答案 0 :(得分:0)
<强>答案强>
图表仅显示图表中五天的数据,因为这是您的RRD中的所有数据。您的RRD配置为自动丢弃任何早于此的数据。
<强>解释强>
图表显示您的RRD目前只有6天的数据需要显示。由于您无法绘制您没有的数据,因此图表显示了他们所拥有的数据,而其余部分则没有。
你的rrdtool info
为RRA定义提供了这个(为了清晰起见,我们进行了修剪):
step = 300
rra[0].cf = "MAX"
rra[0].rows = 1500
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
这意味着你有一个RRA,类型MAX,每行1pdp,1500行。
因此,您的RRA是(步)x(每行pdp)x(行数)长,即1500x300秒,这是5天多一点。
由于您的RRD只有一个RRA,因此您的所有图形函数都将使用此功能 - 必要时即时执行其他合并。因此,您的所有图表都使用此单一RRA。
但是,您的RRA只有5天一天。因此,数据将在过期时过期并被丢弃。因此,只有最后5天和一天的数据可用于绘图,这是您在图表中看到的。
<强>解决方案:强>
您需要将数据保留更长时间。有两种方法可以做到这一点 -
选项1是最简单的,因为您可以使用rrdtool tune
来增加RRA编号0的大小。但是,它在磁盘空间中非常昂贵(因为您将保留整个时间段的详细数据) ),加上CPU价格昂贵(RRDtool在制作年度图表时必须动态合并)。仅当您确实需要整个期间的高分辨率数据时才建议使用此选项 - 例如,如果您要计算第95百分位数。
选项2是最好的。您将为希望创建的每个图形添加一个新的RRA,具有相同的CF但更多的pdp_per_row。对于每周图表,使用pdp_per_row = 6(半小时合并),每月使用24(两小时),对于每年,使用288(每日合并)。随着时间的推移,数据将合并到这些新的RRA中,图形函数将优先使用它们。这在计算上不那么昂贵,并且占用的磁盘空间更少;但是,随着时间的推移,您会丢失高分辨率数据,并且您的历史数据不会自动合并到新的RRA中。此外,您不能只将新RRA添加到现有RRD文件 - 您需要创建新的RRD,或使用rrdmerge等工具。