使用RRD4J和XML创建图形?

时间:2013-10-16 15:06:12

标签: rrdtool

我有一个功课,我需要研究RRD4J并使用RRD4J库创建图形。我的老师只给了我xml文件。那么,我可以将XML与RRD4J一起使用来绘制图形吗?

2 个答案:

答案 0 :(得分:0)

如果没有更多信息,很难回答您的问题。这些一般步骤可能有助于您了解应该做什么,以解决问题:

1)根据您希望的粒度(以及XML文件中的数据频率)创建RRD

例如,如果您希望获得每小时和每日数据,则您的存档创建应如下所示:

RrdDef rrdDef = new RrdDef(fileName, 60); // 60 is step, means you expect data to enter at 60 seconds interval
rrdDef.setStartTime(...); // Set initial timestamp here (must be 10 digit epoch timestamp) 
rrdDef.addDatasource(DATASOURCE_NAME, DsType.GAUGE, 120, 0, Double.NaN); // DATASOURCE_NAME is the name of your variable in time series, DsType - is the type of data (always increasing, increasing and decreasing, etc), 120 is the timeout for new data entry, (i.e if no data enters in 120 seconds, NaN will be added to database), max and min values 
rrdDef.addArchive(ConsolFun.AVERAGE, 0.99, 1, 60);
rrdDef.addArchive(ConsolFun.AVERAGE, 0.99, 24, 240);

RrdDb rrdDb = new RrdDb(rrdDef);
rrdDb.close();

(所有这些配置都来自您正在使用的时间序列的详细分析,如果不查看数据就很难预测某些内容)

2)使用SAX解析XML文件(我想这个会更好,因为在插入RRD数据库后你不再需要访问解析的值了)

3)解析XML时,更新RRD

RrdDb rrdDb = new RrdDb(fileName);
Sample sample = rrdDb.createSample();
sample.setAndUpdate(timestamp+":"+value);
rrdDb.close();

4)插入所有数据后生成一些图表(查看RRD4J网站上的示例和选项)

P.S(使用与MongoDB的集成,它多次超越RRD4J,在他们的页面上也有一个例子)

希望这有助于: - )

答案 1 :(得分:0)

这个XML是模板吗? http://rrd4j.googlecode.com/git/javadoc/org/rrd4j/core/XmlTemplate.html

rrd4j的最佳配置是File和version 2 rrd。