1

我有一个作业需要研究 RRD4J 并使用 RRD4J 库创建图形。我的老师只给了我一个xml文件。那么,我可以使用带有 RRD4J 的 XML 来绘制图形吗?如何绘制?

4

2 回答 2

1

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

rrd4j 的最佳配置是文件和版本 2 rrd。

于 2013-10-17T12:34:07.190 回答
1

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

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 网站上的示例和选项)

PS(使用与 MongoDB 的集成,其性能多次优于 RRD4J,他们的页面上也有一个示例)

希望这有帮助:-)

于 2013-10-17T00:15:40.750 回答