Skip to content

Instantly share code, notes, and snippets.

@hakobera
Last active March 25, 2016 23:47
Show Gist options
  • Save hakobera/fffe38833b490127deee to your computer and use it in GitHub Desktop.
Save hakobera/fffe38833b490127deee to your computer and use it in GitHub Desktop.
InfluxDB の可視化ツール比較

InfluxDB の可視化ツール比較(というか主にデモ)

公式ドキュメントに載っている可視化ツールの比較です。 @toritori0318 さんのログ集計/時系列DB/可視化ツールの調査結果 に大体まとまっているので、詳しくはそこを見てください。

ツール一覧

今日は主に Grafana と Influga を扱います。

Grafana の特長

良い点

  • 見た目がきれい!(Kibana を fork したので、まんま Kibana)
  • ひと通りの機能は揃っているので、迷ったらこれ!
  • 公式 SaaS にも組み込まれているので、本命です。開発も活発

悪い点

  • インストールが面倒(HTTPサーバ、elasticsearch)
  • Kibana の残骸が罠。例えば、nginx のサンプル設定ファイルは間違っている!
    • ソースに kibana が残ったままのやつは要注意!
  • Graphite に特化していくのか、InfluxDB に特化していくのか将来性が若干微妙。最近は InfluxDB 寄りなので、安心ではある。
  • 1グラフ=1クエリなので、すごいダッシュボードをつくると、容易にブラウザ/サーバクラッシャーと化す => と思っていたけど、最新版では良くなってた!

Influga の特長

良い点

  • npm パッケージとして提供されているので、インストールが簡単
$ npm install -g influga
  • ちょっと高機能な Explorer Interface 程度を目指しているので、使い方が簡単
  • SQL(InfluxDB Query)が直接書け、複数のグラフを1クエリで取得できる

悪い点

  • まだ、開発途上でバグ多い、機能が足りない

触ってみよう

Vagrant でセットアップできる環境を用意しました。

https://github.com/hakobera/influxdb-visualize-playground

Tips

fill を上手く使うと、0フィルが簡単に書けるよ。

http://influxdb.com/docs/v0.7/api/query_language.html#filling-intervals-with-no-data

おまけ: InfluxDB の使い方 by Quipper

Kibana の補完的ダッシュボードとして

Kibana はユニークカウントが取れないので、elasticsearch と同じデータを InfluxDB に流して、Influga でユニークユーザ数などを可視化してます。

負荷テストの集計用データベースとして

Locustという Python で書かれた負荷テストツールがあり、カスタマイズできるので InfluxDB の Python クライアントを使って直接 InfluxDB にリクエストの結果(成否、レスポンスタイムなど)を突っ込んで、後で分析しています。

from influxdb import InfluxDBClient

client = InfluxDBClient(host, port, user, password, dbname)

def output_request_log(request_type, name, response_time, response_length, **kw):
  json_body = [{
    "points": [[ request_type, name, response_time, response_length ]],
    "name": "loadtest_result",
    "columns": [ "request_type", "name", "response_time", "response_length" ]
  }]
  client.write_points(json_body)

events.request_success += output_request_log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment