Redash のアラート機能

Photo by Lukas on Pixabay
簡易なアラート機能が標準機能。詳細に通知したい場合はクエリにPythonを書くことで実現可能。

 

標準機能のアラート

概要

  • 通知条件の判定変数は1つのみ
  • 再通知のハンドリングが限定的
  • パラメータ付きクエリはアラート機能で使えない(特定のクエリを定期的に実行してモニタリングをするため)
  • v8はデフォルトオフのカスタムアラート機能をオンにするとアラートで通知できる情報が増える(v9以降はデフォルトオンの機能)

通知先

  • Email
  • Slack
  • PagerDuty
  • Mattermost
  • Google Hangouts Chat
  • HipChat
  • ChatWork
  • Generic WebHook
  • 上記を複数設定することも可

アラートの状態

  • TRIGGERED
    • 閾値超え
  • OK
    • 閾値超えてない
  • UNKNOWN
    • クエリの実行ができていない(アラート作ってからクエリ実行されれるまでの状態)

再通知のハンドリング Rearm

  • ブランク
    • ステータスに変化があったときに1度だけ
  • 秒数(0~86400秒=24時間)
    • ステータスが元々の状態とは変わったとき
    • a) 元々のアラートの状態が TRIGGERED_STATE で今回もTRIGGERED_STATE、かつ b)前回起動時刻からRearm Seconds以上が経過しているとき
      (例)24hごとに実行される場合、1~86400のどの値を入れても動作は同じ

設定方法

  1. Slack Incoming WebHooks
    Incoming WebHooks の設定画面でWebhook URL を取得
  2. Redash の Alert Destination
    Slack Webhook URL を設定する
  3. Redash のクエリの Refresh Scheduleを設定
  4. Redash のアラートを設定する
    1. Queryを指定
    2. Nameを指定(アラートの名前:○○が△△を越えた場合とか何かわかりやすいもの。レポート的に使うときは○○レポートとか)
    3. Op に greater than/ less than /equals
    4. Reference に閾値

Tips

  • greater than で 0じゃないフィールドを 0 判定させて毎回通知みたいなことも可能(通知というよりレポーティング的に)
  • Slack通知時のメンションの記法
    • @here
      • <!here>
    • @channel
      • <!channel>
    • @TaroSuzuki
      • <@ユーザID>、例<@U012A3CDA>
    • @groupA
      • <!subteam^グループID> 例<!subteam^SAZ94GDB8>
    • ユーザID/グループIDの確認方法
      • ユーザID
        • プロフィール画面の「︙」
        • メンバーIDをコピー
      • グループID
        1. Webブラウザ版のSlackで「その他」
        2. 自分のオーガナイゼーション > メンバーディレクトリ
        3. ユーザーグループ
        4. 検索窓で該当のユーザーグループを検索
        5. 検索して出てきたユーザーグループを選択 > […] > グループIDをコピーする
  • v8 ではプレビュー機能だったため、 v9 アップデート時には変数変更が必要(単純置き換えなのでそこまで大変ではなさそうだが、あまりに増やしてしまうと手間かも)

リファレンス

 

タイトルとURLをコピーしました