2020-04-01

InfluxDB周りのプロダクトの役割

InfluxDB周りには色んなプロダクトがある。どれがどんな役割なのかを調査した。

Article Image

どんなプロダクトがあるのか

公式サイトには大きく次ぐの4種類のプロダクトが掲載されており、初心者はどれを使ったら良いかがよくわからない。

  • Chronograf
  • Telegraf
  • Kapacitor
  • InfluxDB

プロダクトの関係

それぞれの関係を公式(Telegraf)のページより引用

InfluxDBについては昨日の記事で公開しているので省略する。

Chronograf

Chronografはデータを可視化する部分を担うプロダクトだ。グラフを出力し直感的にデータをわかりやすくする。

なお、可視化目的では他社にGrafanaというプロダクトもありどちらかを選ぶ事となりそうだ。

どちらも甲乙つけがたい機能を持っているがChronografはInfluxDB専門でありGrafanaは他のものもサポートしている。

公式のフォーラム(英語)ではGrafanaはパートナーでありながらもChronografをおすすめしている。

理由としてはChronografがInfluxDBを使うのであれば全スタックをサポートしているのに対しGrafnaはそうでないという理由だ。

しかし、ユーザーからはChronografにはアラート機能がないじゃないかという指摘が入っているがこれは後述のプロダクトに搭載されているため考慮しないでよいだろう。

今後このサイトではChronografを試してみたいと考えている。

Telegraf

IoT機器などのデータを集めてInfluxDBに記録していくアプリケーションのようだ。

一番上のチャートを見てもらえば分かるが、システムの状態、データベースやネットワークといったものとInfluxDBとの中間にいてInfluxDBとのやり取りをしている。

使用してみないと分からないが仮想通貨関係のデータをストアする場合、自前でコードを書くのかTelegrafを利用したほうが良いのか(そもそもそれが出来るのか)どちらがベストプラクティスとなるかは試して見るほかない。

IoT機器の情報やPCの状態(メモリやストレージの残量)を記録するのであれば間違いなく選択肢に入ってくるだろう。

今回は概要だけ押さえておく。

Kapacitor

こちらは先程述べたとおりInfluxDBに何かしらのアラートを定義して外部に送信する(アラート)機能を持っている。

Slackに通知を送る例を掲載しているサイトがあり、この感じならLineやDiscordもできるのではないだろうか。

こちらのサイトに公式から出ている説明の日本語訳が掲載されており大変参考になったので引用する。

もう少し複雑な例をみてみましょう。あなたがゲームの開発者で、見ている人にトッププレーヤーのスコアを表示するダッシュボードを作成しなければいけないとしましょう。Kapacitorを使うと、各ゲームに対してプレイヤーのスコアを最新の状態に保つという大変な処理を定義することができます。スコアの更新をKapacitorに送信し、ダッシュボードにKapacitorからデータを取得するように設定するだけでよくなるのです。次のTICKscriptは、各プレイヤーの最新のスコアを取得し、ゲームごとのトップ5プレイヤーを計算するものです。

これはETLツールと呼ばれるもので大きなDBから必要な情報だけ抜き出し、加工、書き出しを行う物だ。

実は筆者はこのETLを使って巨大なDWHからデータを抜き出して顧客に分かりやすくする仕事をしていた(が、はるか昔のためETLという単語を忘れかけていた)

つまりデータのアウトプット側のプロダクトだと考えれば良いだろう。

さいごに

InfluxDBに関わるの公式プロダクトを見てみるとデータのインプットとアウトプットの部分がうまい具合にパッケージ化されているようだ。

となると我々エンジニア側はこれらを利用することによりDBとの複雑なやり取り(SQLなど)をある程度意識すること無く行える可能性がある。

とりあえずはひとつひとつ実際に使ってみて判断したい。



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)