RRD4Jを研究し、RRD4Jライブラリを使用してグラフを作成する必要がある宿題があります。先生はxmlファイルだけをくれました。では、RRD4J で XML を使用してグラフを描画することはできますか?
2 に答える
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 Web サイトの例とオプションを確認してください)。
PS (MongoDB との統合を使用してください。これは、RRD4J よりも何度も優れています。ページにも例があります)
これが役に立てば幸いです:-)
于 2013-10-17T00:15:40.750 に答える