Tags

By year

  1. 2014 (28)

InfluxDB を引き続き触ってみるぜよ

InfluxDB fluentd よくわからん

Posted on Apr 20


おさらい

InfluxDB とは

  • time series database(時系列データベース)の一つ
  • イベントデータ等の時系列なデータを蓄積するのに特化している
  • バックエンドでは leveldb というエンジンが動いている
  • 実装は go
  • HTTP でデータの登録や検索可能
  • スキーマレス
  • SQL ライクなクエリ
  • Web UI が同梱されている
  • RDBMS で言うところのデータベースのことは同じくデータベースと呼ぶ
  • テーブルのことは series と呼ぶようだ
  • 絶賛開発中(というイメージ)

参考


応用について考える

InfluxDB の構造等については上記の参考文献等に頼るとしてこれをどのように利用出来る(したい)かを考えてみた。

fluentd と連携

各種ログ等のデータを収集する基盤としてデファクトになっている(と思っている)fluentd との連携がすぐに思いつく。既に fluentd のプラグインとして fluent-plugin-influxdb というものがあり fluentd でかき集めてきたデータを蓄積する為の基盤として InfluxDB を利用しようとされている方がいらっしゃるようだ。

自分自身は実際に試せていないが監視メトリクスデータのストレージ基盤として Elasticsearch から InfluxDB に移行された方の事例はある。

おおっ!て感じだ。

sensu と連携

個人的な最近のトレンドである sensu という監視ツール(monitoring router)との組み合わせてみたいなと考えている。

自分が調べた限りだと sensu 監視イベントデータは Redis に保存されてはいるが、例えば Load Average 等の推移についてはデフォルトの状態だと sensu-server.log という sensu-server 自身のログが出力されるファイルに書かれるのみとなっているはずなので、これを handler プラグイン等を使って InfluxDB に保存出来るのではないかと考えている…と探していたら既にプラグインがありました…。

きっと誰かが作っているよねっ。

以下はその妄想図。

InfluxDB は時系列データベースということもあり上記のような用途は得意分野ではないだろうか…。


ドキュメント拾い読み

ドキュメントを読んだりして色々と気づいた事など。

時間の取り扱い

Date time strings have the format YYYY-MM-DD HH:MM:SS.mmm where mmm are the milliseconds within the second.

上記のように時間は mmm のようにミリ秒まで登録出来るようだ。

You can specify timestamp in epoch time, which is defined as the number of nanoseconds that have elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970. You can use the same suffixes from the previous section if you don’t want to specify timestamp in nanoseconds.

UNIX タイムでの指定も出来るようだ。InfluxDB を標準でサポートする grafana ではミリ秒込みでの UNIX タイムで InfluxDB にデータを登録必要があるようだ。

          for(var i = 0; i < series.points.length; i++) {
            var t = Math.floor(series.points[i][timeCol] / 1000);
            var v = series.points[i][index];
            datapoints[i] = [v,t];
          }

ちなみに grafanaservices/influxdb/influxdbDatasource.js に上記のように書かれている。


さいごに

  • 色々と勉強しなければいけないことが多いが InfluxDB は面白そう
  • 引き続き sensu との連携や grafana について書いてみたい

2014 かっぱのほげふが