次の形式のフラットファイルにいくつかのシステム データを収集しています。
YYYY-MM-DD-HH24:MI:SS DD1 DD2 DD3 DD4
ここで、DD1 ~ DD4 は 4 つのデータ項目です。ファイルの例は次のとおりです。
2011-02-01-13:29:53 16 8 7 68
2011-02-01-13:29:58 13 8 6 110
2011-02-01-13:30:03 26 25 1 109
2011-02-01-13:30:08 13 12 1 31
2011-02-01-13:30:14 192 170 22 34
2011-02-01-13:30:19 16 16 0 10
2011-02-01-13:30:24 137 61 76 9
2011-02-01-13:30:29 452 167 286 42
2011-02-01-13:30:34 471 177 295 11
2011-02-01-13:30:39 502 192 309 10
ファイルは 200 万行を超え、5 秒ごとにデータ ポイントがあります。
このデータから意味を引き出すには、このデータをグラフ化する必要があります。
私が試したこと
現時点では、さまざまな UNIX ツール (awk、sed など) で gnuplot と rrdtool を試しました。これらはどちらも機能しますが、データを別の方法で表示するたびに、データを細かく切り刻んだり再カットしたりする必要があるようです。私の直感では、rrdtool が正しい方法だと思いますが、現時点では、タイムスタンプを Unix エポックに変換する必要があるため、十分な速さでデータを取得するのに苦労しています。また、新しい粒度の集計が必要だと判断した場合は、rrd を再構築する必要があることも理解しています (これは、リアルタイム コレクションには意味がありますが、このようなレトロスペクティブ ロードには意味がありません)。これらのことから、間違ったツールを使用していると思われます。
フラット ファイルへのデータのコレクションは修正されています。たとえば、コレクションを直接 rrdtool にパイプすることはできません。
私の質問
チャートを作成するための最良の方法について、人々の意見が欲しいです。次の要件があります。
- グラフの作成はできるだけ高速である必要があります (レンダリングだけでなく、レンダリングの設定も行います)。
- 可能な限り柔軟にする必要があります-グラフをいじって、データの最適な粒度を見つける必要があります(5秒はおそらく粒度が高すぎます)
- 必要に応じて集計 (MAX/AVG/etc) できる必要があります。
- 入ってくると、繰り返し可能で新しいデータファイルでなければなりません
- 理想的には、DD1 と DD2、または先週の DD1 と今週の DD1 をオーバーレイできるようにしたい
- Unix でも Windows でも構いません。ただし、* nixを好む:-)
助言がありますか?