実は便利な Redash の「アラート機能」

今日は「Redash Advent Calendar 2017」11日目の記事として,初心者向けに,Redash のアラート機能を紹介したいと思う.

qiita.com

Redash Advent Calendar は既に7日目にも記事を書いた.ハンズオン資料には今回紹介するアラート機能も含めているので,是非合わせて見てもらえると!

kakakakakku.hatenablog.com

アラート機能

「データ可視化ツールとして」 Redash を活用している人は多いと思うけど,アラート機能はそこまで普及してないように感じる.データを可視化するだけではなく,値が異常値に達した場合にアラートを通知することもできるので,「業務データのモニタリングツールとしても」 Redash を活用できる.さぁ,今すぐ試してみよう!

公式ドキュメント

仕様などは,公式ドキュメント(最近ドメインが変わった)に詳しくまとまっている.

help.redash.io

ポイントとなる部分を箇条書きにしてみた.

  • パラメータ付きクエリはアラート機能で使えない(特定のクエリを定期的に実行してモニタリングをするため)
  • アラートの通知先は全部で4種類ある
    • Email
    • 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 のアイコンなどを設定しておく

f:id:kakku22:20171210035230p:plain

Alert Destination

次は,Redash の設定画面から通知先を登録する.右上にある設定アイコンをクリックし,Alert Destination の登録画面に遷移する.既に Slack Incoming WebHooks 側に設定をしているため,ここでは Slack Webhook URL を設定するだけで良い.設定を上書きすることもできる.

f:id:kakku22:20171210035249p:plain

クエリに定期実行の設定をする

詳しくはハンズオン資料を見てもらうとして,アラート機能を使う場合は,モニタリング対象にするクエリを定期実行する必要がある.よって,クエリの設定で Refresh Schedule を設定する.

アラートを設定する

最後はアラートを設定する.設定項目は大体見ればわかると思うけど,Op は以下の3種類から選ぶ必要がある.あと,右側にある Notifications で,通知先を選択する.複数の通知先に通知することもできる.

  • Op = Operator
    • greater than ... 閾値より大きい場合
    • less than ... 閾値より小さい場合
    • equals ... 閾値と一致する場合

f:id:kakku22:20171210035302p:plain

すると,Slack に通知ができる.

f:id:kakku22:20171210035313p:plain

複数の閾値を考慮する

もし,複数の閾値を考慮してアラートを通知したい場合は,クエリ側で閾値のチェックを用意し,もし 1 が返ってきたらアラートを通知するという工夫で回避することができる.これは公式ドキュメントにも書かれている.もしくは Python Datasource などを活用して,カスタムクエリを作ってしまう方法もあると思う.

help.redash.io

残念なところ

現状だと,Slack に通知される情報が少ないため,実際にクエリ結果を見に行く必要がある.例えば「閾値」と「トリガーした値」も通知するなど,Slack を見るだけで,最低限の状況がわかるようになれば,より便利に使えるとは思う.

まとめ

  • Redash は「データ可視化ツールとして」だけではなく「業務データのモニタリングツールとしても」活用できる
  • Email / Slack / HipChat / Webhook に通知できる
  • Rearm を設定すれば,再通知のハンドリングもできる

引き続き Redash Advent Calendar 2017 を盛り上げていきましょ!