見出し画像

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(日別×キャンペーン別に広告の実績が格納されている)

元の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」というチャンネルに通知します。

画像4

「インテグレーションの追加」を押すと下記のページに飛ぶので保存します。また、WebhookURLが表示されているのでコピーしておきます。

画像5

【3】Redashでのアラート設定

次にRedash側でアラートの設定をしていきます。Create>New Alert を押します。

画像6

ここで、対象のクエリとトリガーなどを設定します。

画像7

「Create Alert」を押した後に、下記の画面に移るので、「Destinations」に飛びます。

画像8

ここで「New Alert Destination」を押します。

画像9

そうすると、何と連携するか選択できる画面になるのでSlackを選択します。

画像10

ここで、「Name」と「Slack Webhook URL」を設定します。Webhook URLは先ほどコピーしておいたものを入れます。

画像11

こんな感じで入れたら、「Save」します。

画像12

先ほどのアラート設定画面に再度戻って、右上の「+Add」を押します。

画像13

さきほど設定したSlackのチャンネルが出てくるので選択しましょう。

画像14

これで設定は完了です。あとはクエリの定期更新を待つだけです!
↓こんな感じでSlack側にアラートが来れば成功です。

通知成功

今回のケースだと、毎日クエリが定期実行されるので、その時点で過去7日間の平均CPAが1000円を超えている広告キャンペーンがあれば、Slackのチャンネルに通知が来るようになります。
通知が来たらRedashの抽出結果画面(アラート通知についているリンク)に飛んで、どのキャンペーンが閾値を超えているのか確認し、すぐに次のアクションが取れるようになります。
今回のように「KPIが閾値を超えたらアラートが来るようにする」ことで必要なタイミングにKPIがチェックできるようになります。これは業務効率を高め、大事な仕事に使える時間を増やしてくれます。
また、KPIの監視だけでなく、業務上のエラーの監視など様々な用途に使えるかと思います。ぜひこの機能を業務効率化に役立てて頂けると嬉しいです。

以上です。
最後までお読み頂きありがとうございました。

------------------------------------
よかったらtwitterのフォローもどうぞ。
https://twitter.com/MasayukiAbe7
------------------------------------

いいなと思ったら応援しよう!