備忘録/にわかエンジニアが好きなように書く

個人的にとりあえず仕組みを知るために、触りたように好きにとりあえず動くような構築してみる 個人用の備忘録となるので内容の保証はないのでその点はご了承ください。 ※変な内容や間違いを書いているなどありましたらコメントやご指摘いただけると幸いです。

kibana/canvasでCanvasならではの表現を試してみる

 

環境

kibana 6.5.4 / index名  : sensor-*

目的

canvasの勉強を兼ねて使ってみる。

 - 通常のVisualizeではできない表現をする。

 - 画像データを使用したVisualizeを実現

使用するデータは、部屋の中と廊下にある温度情報を区別できて分かるようにする。

今の温度データの可視化(Visualize)

測定データ元にVisualizeから作成した画面

f:id:pocket01:20190210142722p:plain

視覚的に青と緑のlineが"部屋の中" か "部屋の外" のどちらのセンサの区別ができない。

Canvasでの可視化(最終的な画面)

Canvasで部屋の中と部屋の外の温度を視覚的に分かるように表示させる。

f:id:pocket01:20190210182627p:plain

canvasの設定

準備(画像)

使用する画像ファイルを作成する。

・温度表示のための画像

  (温度計の枠)   (温度計の中)     

   f:id:pocket01:20190210133330p:plain      f:id:pocket01:20190210133333p:plain    

 

 ・部屋の間取り図 ※それっぽい図を作成

実現手順

Canvasの画面を開く 

f:id:pocket01:20190210151408p:plain

workpadを作成する

f:id:pocket01:20190210151418p:plain

作成直後の画面

f:id:pocket01:20190210151425p:plain


 "Add element"から作成f:id:pocket01:20190210152424p:plain

※workpadの内容を編集することで、名前やページの大きさを変更することが可能。

 

選択可能なメニュー

f:id:pocket01:20190210152955p:plain

画像追加

1.部屋の間取り図の追加

"Add element"からimageを選択し、右メニュー"select or drag and drop a file"から画像を選択する。

f:id:pocket01:20190210153308p:plain

 

部屋の間取り図の画像が挿入される。

f:id:pocket01:20190210153431p:plain


2.”温度計の枠”の画像を追加

 間取り図の登録と同じような手順で画像を追加する。

 

3.”温度計の中”の画像を追加

"Add element"からImage revealを選択し、右メニュー"select or drag and drop a file"から画像を選択する。

f:id:pocket01:20190210165541p:plain
4.配置調整

追加した画像を良い感じの配置に移動させる。

f:id:pocket01:20190210165856p:plain

※画像のレイヤー調整方法

画像を選択中の右画面の矢印アイコンから"前面へ移動"や"背面へ移動"をさせることが可能

f:id:pocket01:20190210154043p:plain

部屋の中の温度データ可視化①(最新の取得情報を表示)

1. "Add element"から Metric を選択する

 

f:id:pocket01:20190210160347p:plain

 

2.右のメニューから参照するデータ情報を設定

 ①Dataタブを選択

 ②Change your date source を選択

 ③Elasticsearch SQL を選択

f:id:pocket01:20190210162432p:plain

 ④SQLを入力

 ⑤previewを選択し、データソースが取得できていることを確認する

f:id:pocket01:20190210162945p:plain

3.表示させるデータ情報を選択

 ①"Display"タブ を選択

 ②最新の温度を選択し、フォントやラベル情報を修正する。

 ③データが表示されたことを確認し、レイアウトや位置を調整する。

f:id:pocket01:20190210163842p:plain

※桁数の表示や制限の方法は、よく分からないから幅を調整し表示しないようにしている。

f:id:pocket01:20190210164608p:plain

部屋の中の温度データ可視化②(画像と温度データの紐づけ)

※何となく動いた手順で、取得するデータを数式入力させるための簡単な方法は調べきれていないので他のにもあるかもしれませんが、

 SQL設定 → 設定値の修正 → 再度SQL修正 → 設定値の修正

という変な手順となっている。他手順で可能なのか?SQLが間違っているのか?設定漏れなのか?現状の仕様なのか?は不明

 

 

1.右のメニューから参照するデータ情報を設定

f:id:pocket01:20190210173302p:plain

2.SQL入力①

  select ~ from の間に数式を使って値を取得するようにする。

f:id:pocket01:20190210181929p:plain

※入力するSQL(その①)

SELECT temperature/100 FROM "sensor-*"
WHERE
bt_address = 'XXXXXXXXXX'
ORDER
BY "@timestamp" DESC limit 100

 

3.DisplayタブのMeasureで書式を使った設定入力が可能なモードに変更する

f:id:pocket01:20190210174749p:plain

4.SQL修正

DataタブからSQL設定を修正し保存する

f:id:pocket01:20190210181838p:plain

 

※入力するSQL(その②)

SELECT * FROM "sensor-*"
WHERE
bt_address = 'XXXXXXXXXX'
ORDER
BY "@timestamp" DESC limit 100

 

5.Displayタブに戻ってMeasureの値を修正する。

 値を0 ~ 1の間にする必要があるため、温度が 50度( 取得データ / 50 = 1 )で全体の画像表示となるような感じとしている。氷点下や50度以上になるとどうなるのかは未確認

で何か表示されているけど無視している。

f:id:pocket01:20190210175018p:plain

 

6.現地点での画面

※温度センサを置いている辺りに配置としている。

f:id:pocket01:20190210175939p:plain

部屋の外の温度データ可視化③(最新の取得情報を表示)

上記の方法と同じ手順で実施 

部屋の外の温度データ可視化④(温度データのグラフ表示)

1. "Add element"から Progress gaugeを選択し以下のような設定とする。

 ■dataタブ

 f:id:pocket01:20190210182112p:plain

  ■displayタブ

  f:id:pocket01:20190210182105p:plain

 

Canvasの画面

※表示データの更新は、左上のRefreshからデータ更新やauto-refresh interval設定は可能

f:id:pocket01:20190210182707p:plain

 

現状で設定可能なことが分かったから、トビラの開閉とか単純なON/OFFでの可視化は画像表示(0のとき , 1のとき)を調整するだけで良いような感じだから実現できそう。

もう少しUIが使いやすくなると、フロアマップや座席表を使ったフロア内の温度,湿度,騒音等の可視化も、他社に環境を構築したりアプリやソフトを買う必要なく、簡単に作ることできるかも。