はじめに
なんか、Elastic Stackの新機能をだらだら紹介し続けるシリーズになってます。
今回は、6.7から追加されるMaps(GIS) Appの紹介です。
(2019.03.14追記あり)
(2019.05.30追記あり)
7.2以降では、EMSへのアクセス方法が変わりました!デフォルトでは、Kibana経由ではなく、ブラウザ経由でのアクセスになってます。
日本語メッセージを有効にした状態だと、Map系(Maps App/Region Map/Coordinator Map)が使えません・・・EMSClientを作るときi18n.localeが設定されていると、その値がlanguageの値として入りますが、i18n.localeの値であるja-jpだとダメらしい。zh-cnもダメ。デフォルト値はenだけど、それ以外の値はだめっぽい・・・
使い方
6.7以降のElastic Stackを用意します。
左ペインにかTop画面にMapsというリンクがあるので、クリックするだけです。
画面
サンプルデータを入れると、DashboardだけでなくCanvasも、Mapsも、ついでにLogsも表示されるようになります。
下の画面は、eCommerce ordersについてくるMapsの画面です。
でも、Proxyの内側で実行すると、こんな感じに地図が表示されません (;_;)
このままだとさみしいので、適当な地図を追加してあげます(Openstreetmapとか)。
でめ、まだエラー(Layersリストのところにうすーく黄色三角ビックリマーク付き)が出てます。
プロキシ環境下の方は直るまで待ちましょう・・・
#node-fetch使ってるところを修正しちゃえば良いんですが。
使い方
KibanaでMapというと、Coordinator MapやRegion Mapがあります(おっと、Vegaもありますね)。
これらは一つのデータソース(Index)だけ使うことができました。
Coordinator MapやRegion Mapでは、一つのフィールドを扱うぐらいしかできません。
ではMaps Appはというと、複数のデータソースを重ね合わせたり、複数のフィールドのデータを関連付けたりと、いろいろとできるようになります。
例えば先ほど表示したeCommerceのMapでは、Layerというところに、どんなデータソースからのデータを使っているかが表示されています。
さらにさらに、ある一定のズーム倍率のときだけ地図上に表示する、ということもできます。
eCommerceのMapでは、Sales layerがそれにあたります(最低9倍ズームにした時から表示されますが、ほかのLayerは0倍から表示されてます)。
ついでに、ほかのIndexのデータも表示してみます。
Layersの右横にある[Add layer]で表示されるリストから[Elasticsearch documents]を選んで、
適当なIndex(とりあえずkibana_sample_data_flights)を選んで、[Add layer]を押します。
特に何も変えずに[Save & close]を押すと、画面には赤丸がどばーっと表示されます。
おわりに
まだGA前の機能なので不安定なところはありますが、いろいろと遊べそうな機能ですね。
正式発表が待ち遠しい!
追記
2019.03.14分
ダッシュボードへの埋め込みができるようになりました(7.1以降)。
ダッシュボード作成画面で、追加できる項目をよーく見ると「[eCommerce] Orders by Country」があるのがわかります。
各項目の左側にアイコンが表示されてて、それがGaugeなのか、Saved Searchなのかとかがわかりやすいですね。
Mapを追加して見ると、こんな感じです。
んー、これは良い!










