rrd4j的使用详解2--从rrd文件中读取数据
来源:互联网 发布:蒙特卡洛算法求圆周率 编辑:程序博客网 时间:2024/06/07 01:39
从rrd文件中读取数据例子:
import static org.rrd4j.ConsolFun.AVERAGE;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.util.Calendar;import java.util.Date;import java.util.Random;import org.rrd4j.core.FetchData;import org.rrd4j.core.FetchRequest;import org.rrd4j.core.RrdDb;import org.rrd4j.core.Util;/** * Simple demo just to check that everything is OK with this library. Creates two files in your * $HOME/rrd4j-demo directory: demo.rrd and demo.png. */public class DemoRead { static final long SEED = 1909752002L; static final Random RANDOM = new Random(SEED); static final String FILE = "demo"; /*static final long START = Util.getTimestamp(2013, 10, 19); static final long END = Util.getTimestamp(2013, 10, 21);*/ static final int MAX_STEP = 300; static final int IMG_WIDTH = 500; static final int IMG_HEIGHT = 300; /** * <p>To start the demo, use the following command:</p> * <pre> * java -cp rrd4j-{version}.jar org.rrd4j.demo.Demo * </pre> * * @param args the name of the backend factory to use (optional) * @throws IOException Thrown */ public static void main(String[] args) throws IOException { //获取昨天当前时间 Calendar cal = Calendar.getInstance(); long END = Util.getTimestamp(cal); cal.add(Calendar.DATE, -1); long START = Util.getTimestamp(cal) + 3*60; System.out.println("start=" + START); System.out.println("end=" + END); System.out.println("date=" + new Date(1396422600L * 1000)); long start = START ; long end = END; String rrdPath = Util.getRrd4jDemoPath(FILE + ".rrd"); String logPath = Util.getRrd4jDemoPath(FILE + ".log"); PrintWriter log = new PrintWriter(new BufferedOutputStream(new FileOutputStream(logPath, false))); // creation // test read-only access! //rrdPath = "d:/rrd/test.rrd"; rrdPath = Util.getUserHomeDirectory() + "\\rrd\\NetworkDevice\\switch-B_slot-1_switch-ether_port-1.rrd"; RrdDb rrdDb = new RrdDb(rrdPath, true); println("File reopen in read-only mode"); println("== Last update time was: " + rrdDb.getLastUpdateTime()); println("== Last info was: " + rrdDb.getInfo()); // fetch data println("== Fetching data for the whole month"); FetchRequest request = rrdDb.createFetchRequest(AVERAGE, start, end); println(request.dump()); log.println(request.dump()); FetchData fetchData = request.fetchData(); //double[] value = fetchData.getValues("cpu_usagemhz"); println("== Data fetched. " + fetchData.getRowCount() + " points obtained"); println(fetchData.toString()); log.close(); } static void println(String msg) { System.out.println(msg); } static void print(String msg) { System.out.print(msg); } static class GaugeSource { private double value; private double step; GaugeSource(double value, double step) { this.value = value; this.step = step; } long getValue() { double oldValue = value; double increment = RANDOM.nextDouble() * step; if (RANDOM.nextDouble() > 0.5) { increment *= -1; } value += increment; if (value <= 0) { value = 0; } return Math.round(oldValue); } }}
结果:
0 0
- rrd4j的使用详解2--从rrd文件中读取数据
- rrd4j的使用详解1--数据保存入rrd文件
- 使用 Bash 脚本读取 rrd 文件中的性能参数值
- 从文件中读取数据
- 从文件中读取数据
- 从文件中读取数据
- 使用libpng,libjpeg从文件读取和从内存读取2中方式的实现
- 使用libpng,libjpeg从文件读取和从内存读取2中方式的实现
- 从CSV文件中读取数据,使用逗号','分割问题
- 从CSV文件中读取数据,使用逗号','分割问题
- 从CSV文件中读取数据,使用逗号','分割问题
- 从文件中读取需要的数据(fscanf和fgetc配合使用)
- 从Java的jar文件中读取数据
- matlab读入从文件中读取大量的数据
- Java从文件中读取字节数据的固定套路
- springMVC从上传的Excel文件中读取数据
- springMVC从上传的Excel文件中读取数据
- springMVC从上传的Excel文件中读取数据
- Struts1.x系列教程(17):使用IncludeAction和ForwardAction类包含和转入Web资源
- c中获取python的异常的traceback
- Matlab获取用户选择的单个或多个文件代码
- springMVC控制层返回视图层
- easyui jquery 自定义表单验证 异步 后台
- rrd4j的使用详解2--从rrd文件中读取数据
- COPY JVM verbose GC
- javamail发送邮件
- android-http://blog.csdn.net/zhouyuanjing/article/details/7360508图片bitmap特效处理
- Linux系统环境下关于多进程并发写同一个文件的讨论
- 年级学习成绩管理系统-GSSM
- 解决所有MyEclipse中文乱码问题
- zabbix mysql 迁移总结
- 进程与线程的差别