今日は「Redash Advent Calendar 2017」11日目の記事として,初心者向けに,Redash のアラート機能を紹介したいと思う.
Redash Advent Calendar は既に7日目にも記事を書いた.ハンズオン資料には今回紹介するアラート機能も含めているので,是非合わせて見てもらえると!
アラート機能
「データ可視化ツールとして」 Redash を活用している人は多いと思うけど,アラート機能はそこまで普及してないように感じる.データを可視化するだけではなく,値が異常値に達した場合にアラートを通知することもできるので,「業務データのモニタリングツールとしても」 Redash を活用できる.さぁ,今すぐ試してみよう!
公式ドキュメント
仕様などは,公式ドキュメント(最近ドメインが変わった)に詳しくまとまっている.
ポイントとなる部分を箇条書きにしてみた.
- パラメータ付きクエリはアラート機能で使えない(特定のクエリを定期的に実行してモニタリングをするため)
- アラートの通知先は全部で4種類ある
- Slack
- HipChat
- Webhook
- IFFFT など,好きなように連携することもできる
- アラートの状態は全部で3種類ある
TRIGGERED
... アラートに設定した閾値を超えた状態OK
... アラートに設定した閾値を超えていない状態UNKNOWN
... まだクエリの実行ができていない状態
- 再通知のハンドリングは
Rearm
に設定する- ブランク ... ステータスに変化があったときに1度だけ通知する
- 秒数 ... ステータスが
TRIGGERED
になっているときに,指定した秒数ごとに再通知を行う
Slack Incoming WebHooks
今回は Slack を通知先にして紹介する.まずは,Slack で Incoming WebHooks の設定画面を開く.基本的には Webhook URL が取得できれば良いけど,以下も合わせて設定しておくと便利.
- Customize Name を「Redash Alerts」など,すぐわかる名前にしておく
- Customize Icon に Redash のアイコンなどを設定しておく
Alert Destination
次は,Redash の設定画面から通知先を登録する.右上にある設定アイコンをクリックし,Alert Destination の登録画面に遷移する.既に Slack Incoming WebHooks 側に設定をしているため,ここでは Slack Webhook URL を設定するだけで良い.設定を上書きすることもできる.
クエリに定期実行の設定をする
詳しくはハンズオン資料を見てもらうとして,アラート機能を使う場合は,モニタリング対象にするクエリを定期実行する必要がある.よって,クエリの設定で Refresh Schedule を設定する.
アラートを設定する
最後はアラートを設定する.設定項目は大体見ればわかると思うけど,Op は以下の3種類から選ぶ必要がある.あと,右側にある Notifications で,通知先を選択する.複数の通知先に通知することもできる.
- Op = Operator
greater than
... 閾値より大きい場合less than
... 閾値より小さい場合equals
... 閾値と一致する場合
すると,Slack に通知ができる.
複数の閾値を考慮する
もし,複数の閾値を考慮してアラートを通知したい場合は,クエリ側で閾値のチェックを用意し,もし 1 が返ってきたらアラートを通知するという工夫で回避することができる.これは公式ドキュメントにも書かれている.もしくは Python Datasource などを活用して,カスタムクエリを作ってしまう方法もあると思う.
残念なところ
現状だと,Slack に通知される情報が少ないため,実際にクエリ結果を見に行く必要がある.例えば「閾値」と「トリガーした値」も通知するなど,Slack を見るだけで,最低限の状況がわかるようになれば,より便利に使えるとは思う.
まとめ
- Redash は「データ可視化ツールとして」だけではなく「業務データのモニタリングツールとしても」活用できる
- Email / Slack / HipChat / Webhook に通知できる
Rearm
を設定すれば,再通知のハンドリングもできる
引き続き Redash Advent Calendar 2017 を盛り上げていきましょ!