【influxdb 0.9.x】 HTTP API経由でのinfluxdbへのデータ書き込み
データベース作成
mydb というデータベースを作成する
curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
データ書き込み
データベース: mydb に下記データを書き込む
項目 | 値 | 意味 |
---|---|---|
measurement | cpu_load_short |
関連するfield に保存されたデータについて記述したもの.string |
tag key | host , region |
key-value 型である tag の key の部分。string |
tag value | server01 , us-west |
key-value 型である tag の value の部分。string |
field key | value |
key-value 型であるfield のkey の部分。string |
field value | 0.64 |
key-value 型であるfield のvalue の部分で、実際のデータに該当する。string, float, integer, or boolean |
timestamp | 1434055562000000000 |
データの時間。influxdbではすべてUTC |
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
複数データを一気に書き込む
このようにして複数データを一気に書き込むことができる
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server02 value=0.67 cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257 cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257'
ファイルのデータを書き込む
//cpu_data.txt cpu_load_short,host=server02 value=0.67 cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257 cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257
上記の cpu_data.txt を用意して, データベース mydb に書き込む
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary @cpu_data.txt
ただし、5000 行を超えるようなデータの場合は複数ファイルに分割すべき。
デフォルトでは 書き込み timeout が5秒のため、timeoutを超えた場合に正常に書き込めたか確認取れないため。
スキーマ設計
influxdb はスキーマレスです。
いついかなるときでも新しい measurements, tags, and fields を追加することができます。
注意点としては前回の書き込みとは異なるデータ型で書き込んだ場合(前回はstring 型だったが、今回はfloat型の場合など)、influxdb は書き込みを拒否します。
HTTP response summary
- 2xx
-
HTTP 204 No Content
: 成功 HTTP 200 OK
: influxdb はリクエストを解釈できるが完了できない. レスポンスボディに追加のエラー情報が含まれているはずです。
-
- 4xx
- InfluxDB はリクエストを解釈できません.
- 5xx
- システム高負荷か重大な障害にあっている.