当前位置: 首页 > 工具软件 > JRobin > 使用案例 >

Rrd 文档 总结(二) 介绍 JRobin

高玮
2023-12-01

2010年1月19日 星期二
 
 * 介绍一下 Jrobin 的语法

 * 创建Rrd文件
 
 * RrdDef def = new RrdDef("D:/rrd/test.rrd", 300);
 * 定义rrd的路径和step
 * step 表示时间间隔。真正存储的时间点的间隔。DS.在每一个 step 周期内会产生一组新的DS值,用以更新资料库.这个值也称为Primary

Data Point (PDP).在上例,每 300 秒产生一个新的 PDP 值.
   注:如果无法刚好在每 300 秒产生一个值,JRobin 会自动补偿修正.
 
 * 加入数据源
 * def.addDatasource("input", "COUNTER", 600, 0, Double.NaN);
   def.addDatasource("output", "COUNTER", 600, 0, Double.NaN);
 * 数据源名称为input,dsType为 COUNTER ,heartbeat 为600,设置的下限和上限为0,和NaN;(Use <code>Double.NaN</code> if

unknown)

 * 加入archive
 * def.addArchive("AVERAGE", 0.5, 1, 600);
   def.addArchive("AVERAGE", 0.5, 6, 700);
   def.addArchive("AVERAGE", 0.5, 24, 797);
         def.addArchive("AVERAGE", 0.5, 288, 775);
   def.addArchive("MAX", 0.5, 1, 600);
   def.addArchive("MAX", 0.5, 6, 700);
   def.addArchive("MAX", 0.5, 24, 797);
   def.addArchive("MAX", 0.5, 288, 775);

 * 数据合并类型CF 为AVERAGE(取平均值)和 MAX(取最大值),xff为0.5表示有效数据要超过百分之五十才能计算Archive,1,6,24,

288,表示多少个PDP合成一个Archive!例如 6 就是 6个PDP合成一个Archive。最后一个数字表示总共要生成多少个Archive。

 * 如 第二个 def.addArchive("AVERAGE", 0.5, 6, 700); 前面定义step为300秒即五分钟,这个Archive定义6个PDP合成一个Archive,

即三十分钟合成一个Archive,总共是700个,700*30分钟 为 14.5天 约为两星期。所以这个Archive就是存两星期平均值的Archive。

 * RrdDb rrd = new RrdDb(def);
 * 生成rrd文件,这样就按照你所定义的方式生成了rrd文件,但是文件中没有数据,都被填充为NaN。

 * ***************************************************************
 
 * 更新数据
 * RrdDb rrdDb = new RrdDb("D:/rrd/test.rrd");
 * 这样就生成了rrdDb对象,将路径下面的rrd文件读入到内存中了!

 * long timestamp = ....;//开始更新时间 ,必须大于开始时间和最后更新时间
 
 * Sample sample = rrd.createSample(timestamp);//创建实例对象
  
 * sample.setValue("input", inputValue); //inputValue和outputValue为         

//double类型数据。
   sample.setValue("output", outputValue);
    sample.update();

 * 调用update()方法之后数据将被更新到rrd文件中。

 * **********************************************************
 
 * long timestamp = rrdDb .getLastUpdateTime();
 * 得到最后更新的时间

 * FetchRequest request = rrd.createFetchRequest("AVERAGE", 100100000L, 100200000L);

 * FetchData fetchData = request.fetchData();

 * for(int i = 0; i < fetchData.getRowCount(); i++) {

            FetchPoint point = fetchData.getRow(i);
             System.out.println(point.dump());

   }

 * 取得 rrd文件中的数据 并打印出来!
 * 具体取数据的方法见API文档!这里就不做说明了。

 

 类似资料: