influxdb

InfluxDB を10分だけ触ってみた

More than 5 years have passed since last update.

InfluxDB とは Black Duck Open Source Rookies of the Year 2013 にも選ばれた今注目の Time series metrics database である。

ということでちょっと触ってみた。


インストール

http://influxdb.org/download/ ページを見て、環境にあわせてインストールする。

例えば CentOS x86_64 の場合

$ wget http://s3.amazonaws.com/influxdb/influxdb-latest-1.x86_64.rpm

$ sudo rpm -ivh influxdb-latest-1.x86_64.rpm
influxdb process is not running [ FAILED ]
Starting the process influxdb [ OK ]
influxdb process was started [ OK ]

おぉ、これだけなのか。

http://influxdb.org/docs/ Introduction ページを見て、アクセスする。API が 8086 ポート、Web UI が 8083 ポートで動いているらしい。

スクリーンショット 2014-04-03 19.44.19.png

ちなみに lsof -p してみると他にもいくつか LISTEN しているようだ。

$ sudo lsof -p 16288 -P | grep TCP

influxdb 16288 root 5u IPv6 988300294 0t0 TCP *:8090 (LISTEN)
influxdb 16288 root 7u IPv6 988300298 0t0 TCP *:8099 (LISTEN)
influxdb 16288 root 9u IPv6 988300742 0t0 TCP *:8086 (LISTEN)
influxdb 16288 root 10u IPv6 988300744 0t0 TCP *:8083 (LISTEN)


GUI で遊ぶ

実際に運用しようと思ったら、HTTP API を使うとは思うが、せっかくなので GUI から遊んでみる。

http://localhost:8083 にアクセスして、デフォルト root/root でログインする。ログインしたら GUI から database を作ったりできるようだ。

スクリーンショット 2014-04-03 19.48.17.png

Database を作って、Explore リンクをクリックすると、次のような画面に入る。

スクリーンショット 2014-04-03 19.55.20.png

MySQL でいうところの table に相当するものを series と呼ぶらしい。試しに以下のようなデータを series に登録してみる。

Time Series Name: response_times

values: {"time": 1382819388, "value": 234.3}

で、Query を

select value from response_times;

としてみると、なんか出た。

スクリーンショット 2014-04-03 19.58.34.png

もっと入れてみる。ほうほう。

スクリーンショット 2014-04-03 20.02.29.png


SQL-like query language

あとは、SQL-like query language を使って色々ごにょごにょできるようだ。

select value from response_times where time > now() - 1h limit 1000;

のようにして1時間以内、1000個のみに絞るとか、

select max(value) from response_times group by time(10m);

のようにして、10分ごとの max 値の値のみを取るとか。

Time Series SQL 楽しい ^^


おわりに

GUI を使ったのでグラフが表示されたが、実際に API 経由で使う場合は、json でデータが返ってくるだけなので描画ツールは自分で実装しなければならないはず。Elasticserach に対する Kibana のようなものが、InfluxDB にもあると捗るので、誰か作ると良いですね。

追記:そういえば最近 twitter のタイムラインに流れてた Grafana を使えるのかな。今、鋭意実装中みたいだけど期待できますね。cf. https://github.com/torkelo/grafana/wiki/InfluxDB


With version 1.5 Grafana now supports InfluxDB. The support is pretty basic with this first version.


追記の追記:触ってみました => Grafna on InfluxDB をちょっとだけ触ってみた