Graphiteの不正データを補正する

Raspberry piで部屋の温度を測定してGraphiteに記録しているが、部屋の温度がマイナスになっていることがあった。
調べたらデータを編集できるみたいなので、マイナス値をマイナスになる前の値で補正してみた。

使うコマンド

|コマンド|意味| |whisper-dump|データの内容を参照する| |whisper-update|データを更新する whisper-update <unix時間>:<value>|

記録データの参照

まずは、記録されているデータを見てみる。
因みに、データは/var/lib/graphite/whisper の下にある。

1
$ whisper-dump temp.wsp

下記のようにデータが入っている。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Meta data:
  aggregation method: average
  max retention: 157680000
  xFilesFactor: 0.5
 
Archive 0 info:
  offset: 28
  seconds per point: 600
  points: 262800
  retention: 157680000
  size: 3153600
 
Archive 0 data:
0: 1458796200, 19.600000000000001421085471520200372
1: 1458796800, 19.519999999999999573674358543939888
2: 1458797400, -40.600000000000001421085471520200372
3: 1458798000, 19.359999999999999431565811391919851
4: 1458798600, 19.199999999999999289457264239899814
5: 1458799200, 19.199999999999999289457264239899814
6: 1458799800, 19.199999999999999289457264239899814

/tmp/temp.txtに保存して、ヘッダーの余計なものをけづっておいた。

記録データのアップデート

whisper-updateは引数は時間:値で設定する。
whisper-dumpで取得したデータをawkでいじってマイナス値だけ直前の正常値で補正してやる。

1
cat /tmp/temp.txt | awk 'NR<=20418 {if($3 > 10){a=$3}else{gsub(",","",$2);if($2 > 0){print $2 ":" a}}}' | xargs -n 1 sudo whisper-update temp.wsp

whisper-updateはsudoしないと、temp.wspを更新できなかった。

参考URL

(http://www.perehospital.cat/blog/graphite-how-to-update-a-whisper-database-data-point)

</value></unix時間>

0 件のコメント :

コメントを投稿