今年の11月頃になんとなく仕事で re:dash
導入したらいろいろ捗ったので感謝の Advent Calendar です。
(こんなにガラガラだとは思っていませんでした。ブーム過ぎ...?)
(確認したら去年もガラガラや)
発端
入れてみようと思ったきっかけは
-
re:dash
ちょいちょい耳にするなー - いれてみたいなー
- ディレクターさんの1人がSQL勉強したいですという要望
- 実は他にもSQL使えば、仕事の性質上恩恵受けられるだろうなーと思っていた(たくさんのデータをExcelでやっててPCも人もウンウン唸っていた...)
- だったら1人にいろいろ設定して導入してもらうより
re:dash
入れたほうが良さそう
だったので re:dash
を導入しました。
re:dash
導入前
今まで社内の他のプロダクトでもSQL叩くディレクターさんはいたのですが、みんな Windows 環境なので MySQL Workbench を使っており、SQL叩いたことない人にはその導入からしてもらわなきゃいけなくて、その手伝いからやっていたりしたので双方メンドクサーな状態
SQLの勉強自体も基本は独学で勉強してもらって、わからない query があったら聞いてもらってそれを Slack で返して貼り付けて...みたいな。
教えた query どうする? 個人管理? wiki? みたいな。 (やめてくれ)
re:dash
導入後
- ユーザ追加をすれば、すぐ接続環境が整う
- ハードルがだいぶ低くなる
- いくつか私や他の人が追加した query を見て勉強できる
- query はもちろん re:dash 上に保存される
- Fork すればいくらでもいじれる
- きれいなダッシュボードを見て同じチームの人も見始める
- もしくは使っている人がダッシュボード見てほしいので見れるようにしてほしいとお願いされる
- プロダクト横断的にいろいろ見るプロジェクトだったので他のプロダクトのDBもつなぎこんでください、というお願いが来る
- 複数のDB接続も簡単
- つなぎこみも簡単(社内に立てていたので別途プロダクト側にお願いする必要がなかった)
- そのプロダクトの人も
re:dash
で数値見始める - こんなのも見れないんですか?という潜在的な要望が顕在化してきた <- 今ココ
という絵に描いたようないいサイクル
私が助かったこと
- より潜在的な要望が出てきた
- ちょうどある特定の数値になったら Slack に通知飛ばすみたいな機能が必要だね、という話をしていたところの導入だったので Alert 機能をそのまま使って実装せずに機能だけ提供できた
とはいえ、全部 re:dash
だけで完結しそうにないのでその部分だけ開発が必要かも、と思っている所
困った所とその対処
Alert 機能一覧が見づらい
設定している量が多くて、ディレクターさんとかに見てもらうにしても自分のアラートどれやねん + 私も管理しづらい...
対応
- re:dash の DB 自体参照できるようにしちゃう (設定は慎重に)
初期の re:dash metadata
では alerts テーブルが参照できないようになっているのでユーザを変えて参照できるようにしました。
グループ管理機能を使って、アクセス権限周りよしなにしてください。
それに filter とかの機能を使って見やすい感じの widget にして各プロダクトのダッシュボードに配置。
副産物
定期実行している query が増えてくるとどれがいつ実行されるか管理しづらくなってくるのでそれも query 作ってダッシュボードに追加しちゃう。
re:dash
自身も re:dash
で管理(したくなる)
自己参照っょぃ
Elasticsearch の複雑な query のグラフ化
今のプロダクトは Elasticsearch をメインに構成されているのでそこに複雑な query 投げたいという要望がきたけど、現状の re:dash
だとできない場合がある
今回は 2重の aggregation を使った query をグラフ化したかったがうまくできない
対応
- Kibana の埋め込みタグを widget の TextBox にはっつけちゃう
唐突な Kibana
そもそも Elasticsearch には可視化ツールとして Kibana という本家本元があるのでそれを利用しました。
グラフ化も lucene query 書かずに GUI 的に生成できるので頼みやすい。
Kibana で見ればええやん、みたいなことも思いましたがやはり情報は一つにまとまっている方が見てくれると思います。
SQL勉強中の人に lucene query もってなると気が重いので...
追記
と思ったら、DataSource の Type に Kibana がありますね。
どうやって使うんだろう...
まとめ
今まで私のプロダクト内ではSQLを使う人が少なく、布教するにしても若干ハードルが高かったのですが布教しやすい環境が整いうまく回り始めました。
実は re:dash
入れたい欲はだいぶ前からあって、ただ使うイメージができなかったので入れてなかったのですが、SQL勉強したいという人が出てきたことが後押ししてくれました。
もし、自分のプロダクトでもいるんだろうか...という人がいたら dockerでかなり簡単にササッと入れられてしまうので入れてみましょう。
入れたら意外とうまく回り始めるかもしれません。
支払うコストは低いはずです。
今日も re:dash
に感謝