2に関してはこちらの記事にて作成した公式が用意するサンプルプログラムを稼働した事がある前提で進める。
公式のサンプルプログラムを起動した状態でlocalhost:3000
にアクセスするとアクセスにかかった時間(プログラム内で意図的に遅延を発生させている)を記録する。ブラウザを更新すればするだけレコード追加されている。
サンプルプログラムではなくとも別のデータが入っていれば良い。
DLはこちらのページから
Chronografのバージョンを選択してダウンロードして解答する。2020/04/02現在はv1.8.0だった。
chronograf.exe と chronoctl.exe 2つのファイルが出力される。
Windowsの場合は設定はUIから行うので事前にテキストファイルなどを編集する必要はない。楽である。
クリックしてから少しラグがあり次の画面。
ロード中のような画面が出るが気にせず Next をクリック。
何も設定していない。デフォルトで確定し続けただけで完了した。
ここまでくれば既にアプリのメイン画面に遷移している。
実際にデータを可視化してみたいのでまずは Explore をクリック
次のような画面になっている。矢印を書いたところがサンプルプログラムで作成されたDBである。
DBの名前をクリックすると右に「response_time」というのが出てくる。これがテーブルに当たるところの「Measurement」だ。
ここもクリックする。
すると更に右側に duration と path のチェックボックスがあらわれる。
こちらもサンプルプログラムの次のコードで自分で設定した値が選択肢となっている。
influx.writePoints([
{
measurement: 'response_times',
tags: { host: os.hostname() },
fields: { duration, path: req.path },
}
])
このdurationに先程説明した「読み込みの遅延情報」が入っているので、durationにチェックを入れる。
この時点で次のメッセージが表示されている場合はデータが入っていないのでサンプルプログラムを稼働してlocalhost:3000 にアクセスし何回かリロードしておく
初期設定で mean (平均値) が表示される設定のようなので解除しておく
Applyで確定
すると上部にレコードが表示されるはず。人によっては既にグラフが出ているかもしれない。
意外に面倒だがここまでが一般のデータベースで言うところのSQLを発行してデータを抽出してきた状態だ。
なお、InfluxDBではSQLに似ているがSQLではなく「InfluxQL」と呼ばれる独自の形を使用している。
SQLを使わないデータベースを「NoSQLデータベース」とも呼ぶ。
ようやく可視化(グラフ化)の出番だ。
先程の状態で上部の「Visualization」をクリック。
あとは左下のグラフの形状を選択すれば上部にグラフがあらわれるはずだ。
グラフをダッシュボードに登録しいつでも参照できるようにすることができる。
右上「Send to Dashboard」をクリック。
ダッシュボードが何枚も登録できるようでTarget Dashboard(s)をクリックして選択する。
初期設定でダッシュボードを作らなかったのでSend to a New Dashboardにチェックして新規作成する。
新しいダッシュボードの名前(上段)とグラフの名前(下段)を入力したらSend to Dashboardで作成される。
Dashboards移動し先程作成したダッシュボードをクリック。
これで表示される・・・はず?
はず?と書いた理由なのだがグラフが描画されないパターンがあった。
もう一度サンプルプログラムを使ってlocalhost:3000に何度かアクセスし、レコードを追加してやったら表示された。
このあたりの動作がイマイチ把握できていない。また詳しい情報が分かり次第更新する。
とりあえず可視化するだけであればシンプルであり外観も非常に美しい。さらにDashboardの画面もカスタマイズしやすい。
InfluxQL周りを覚えていくことが必須になりそうだが、これは少しづつ調べながら慣れていくしか無いだろう。
余談ではあるがChronografのgrafがgraphでない点は覚えておこう(よく間違える)おそらく検索結果を考慮して固有の名詞になるようにしているのだろう。
phだと次になってしまう - Wikipedia : クロノグラフ(Chronograph)