web-dev-qa-db-ja.com

rrdtool:更新の不正な試み

テキストファイルから「履歴」データを読み取り、後でグラフ化するためにrrdtoolに保存しようとしています。

新しい(空の)rrdデータベースを作成しました

$ rrdtool create monitor_db.rrd --step 900 DS:col1:GAUGE:900:0:1000 DS:col2:GAUGE:3600:0:1000 RRA:MAX:0.5:1:1500

次に、データベースを更新しようとしましたが、エラーが発生します

$ rrdtool update monitor_db.rrd --template col1:col2 1404249680:2:3
ERROR: monitor_db.rrd: illegal attempt to update using time 1404249680 when last update time is 1422146997 (minimum one second step)

rrdtoolが要求するタイムスタンプは、最後の更新時刻1422146997であり、約半年前のデータを挿入しようとしています。

rrdtoolに時系列でデータを挿入する必要があることを理解しましたが、データベースを削除して再作成しようとしたため、データベースは空になっているはずです。

2
benedikt

Rrdtoolcreateには--startシステム全体の時間を変更せずに必要なことを実行するオプション。デフォルトは10秒前です。

3
Paul Haldane

データベースを作成する前に、システム時刻を変更する必要がありました。

  1. データセットの最初のタイムスタンプよりも前になるようにシステム時刻を設定します。私の場合:1404249680(ISO形式の2014-07-02T21:21)。
  2. rrdtool createを使用してデータベースを作成します。
  3. システム時間を通常に戻します。
  4. データベースをrrdtool updateで更新します。

touch -dでファイル属性を編集するだけでは不十分でした。開始日は、おそらくデータベースファイルのどこかに保存されています。

1
benedikt