IT老兵,爱好胡思乱想、读书和交流,2015年底重新回到IT战场,期待再一次“贯穿”。
分类: 服务器与存储
2007-05-09 17:15:58
rrd_fetch命令格式:
rrdtool fetch path_file_name CF [--resolution|-r resolution ] [--start|-s start_time] [--end|-e end_time]
注:具体命令参数含义请参考相关的RRD文档
rrd_fetch功能:
从指定文件path_file_name中获取时间间隔为resoluion,开始时间为start_time,结束时间为end_time的所有数据源的数据值.
rrd_fetch实现:
根据rrd_fetch功能能够看出,rrd_fetch操作的对象就是rrd文件的”数据区域”.(“数据区域-请参考上面的RRD文件分析部分”).改rrd函数rrd_fetch就是根据命令行中的CF, resolution, start_time, end_time等参数来选则相应的RRA,然后根据RRA在RRD 文件中的具体位置(第i个RRA的第j行)将文件指针移动到制定位置然后提取数据,提取数据时将提取全部的DS,提取RRA的行数为(end_time -start_time)/(interval*rra[i].pdp_cnt)+1,注意interval可以使命令中的resolution.
RRA的选择规则为:
第一:在RRD文件中寻找符合CF类型的RRA
第二:在第一个条件满足的情况下,寻找时间范围在start_time和end_time间,并且相差最小的RRA.
第三:如果没有在start_time和end_time之间的RRA,就在满足第一个条件的RRA中寻找与start_time和end_time时间相差总和最小的RRA.
rrd_fetch流程图: