Redash×slackで、KPIが閾値を超えたらアラートが来るようにする
複数のプロダクトや施策を追っていると、見るべきKPIが多くなって「毎日見ないといけないダッシュボードだけで数十個ある…」みたいな状況になったことはありませんか?
KPIを可視化して定点観測することはとても重要なことですが、数が増えすぎるとその監視コストもバカになりませんよね。
KPIの中には、日々見ないといけないものとは別に、見るべきタイミングが限定されるものも多いです。例えば、
「獲得広告のCPAがXX円を超えたら予算をアロケしたいから、それがすぐわかるようにしたい」
「担当プロダクトの”イベントA”が特定の値を超えたら次の施策をスタートさせたい」など、閾値を超えたタイミングでアラートがあれば良いものも多いのではないでしょうか。
そこで今回はRedashとslackを使って、「KPIが閾値を超えたらアラートが来るようにする」簡単な方法を説明します。
この記事のターゲットは、日々複数のKPIを追っている方、前提として社内にRedashが導入されており、必要なデータがそろっている状態を想定しています。
Redashのアラート機能を利用する
Redashとは、様々なデータソース(MySQLやBigQueryなど)に対応したダッシュボードツールです。自由にデータ抽出や加工、チャート化ができるのでKPI管理やデータ分析に非常に便利です。
そしてRedashには便利な”アラート機能”があります。これは、閾値を超えたクエリ結果に対してAlertを投げてくれて、しかもSlackと簡単に連携できてしまう優れものです。今回はこれを利用します。
【1】クエリを作成する
今回はわかりやすく、指定するKPIが閾値を超えたらフラグを立てるクエリを作成してみます。「獲得広告の日次データが入っているTABLEから、過去7日間の広告キャンペーン別CPAを算出し、それが1000円を超えたらフラグが立つ」というクエリを作成してみることにします(数字などは全部ダミーです)。
↓データ抽出元のTABLE(日別×キャンペーン別に広告の実績が格納されている)
これに対してクエリを書きます。例えばこんな感じです。CASE式を使って、CPAが1000円超えてたらFlgとして"1"が立つようにしています。期間は過去7日間です。
SELECT
CampaignName,
SUM(COST) AS COST,
SUM(Cv) AS CV,
SUM(COST) / SUM(Cv) AS CPA_Avg,
CASE
WHEN SUM(COST) / SUM(Cv) > 1000 THEN 1
ELSE 0
END AS Flg
FROM <ここにTABLE名>
WHERE Date > date_sub(now() , interval 7 DAY)
GROUP BY CampaignName
↓実行結果
↓今回は定期更新を「1 Day」にしておきます。これでクエリが自動で毎日更新されます。
【2】WebhookURLの取得
次に、下記のURLからWebhookURLを取得します。
飛び先のページで設定していきます。まずはどこのチャンネルに通知したいかを入れます。今回は「#kpi_alert」というチャンネルに通知します。
「インテグレーションの追加」を押すと下記のページに飛ぶので保存します。また、WebhookURLが表示されているのでコピーしておきます。
【3】Redashでのアラート設定
次にRedash側でアラートの設定をしていきます。Create>New Alert を押します。
ここで、対象のクエリとトリガーなどを設定します。
「Create Alert」を押した後に、下記の画面に移るので、「Destinations」に飛びます。
ここで「New Alert Destination」を押します。
そうすると、何と連携するか選択できる画面になるのでSlackを選択します。
ここで、「Name」と「Slack Webhook URL」を設定します。Webhook URLは先ほどコピーしておいたものを入れます。
こんな感じで入れたら、「Save」します。
先ほどのアラート設定画面に再度戻って、右上の「+Add」を押します。
さきほど設定したSlackのチャンネルが出てくるので選択しましょう。
これで設定は完了です。あとはクエリの定期更新を待つだけです!
↓こんな感じでSlack側にアラートが来れば成功です。
今回のケースだと、毎日クエリが定期実行されるので、その時点で過去7日間の平均CPAが1000円を超えている広告キャンペーンがあれば、Slackのチャンネルに通知が来るようになります。
通知が来たらRedashの抽出結果画面(アラート通知についているリンク)に飛んで、どのキャンペーンが閾値を超えているのか確認し、すぐに次のアクションが取れるようになります。
今回のように「KPIが閾値を超えたらアラートが来るようにする」ことで必要なタイミングにKPIがチェックできるようになります。これは業務効率を高め、大事な仕事に使える時間を増やしてくれます。
また、KPIの監視だけでなく、業務上のエラーの監視など様々な用途に使えるかと思います。ぜひこの機能を業務効率化に役立てて頂けると嬉しいです。
以上です。
最後までお読み頂きありがとうございました。
------------------------------------
よかったらtwitterのフォローもどうぞ。
https://twitter.com/MasayukiAbe7
------------------------------------