こんにちは、株式会社CloudFitの瀬沼(@y_senuuu)です。
『Looker Advent Calendar 2020』の12日目のエントリを投稿させて頂きます。
背景
Google Analyticsのようなサイトのアクセス解析や、GoogleやFacebookに代表されるWEB広告を扱うためには、タグを使ってサイト上でイベントを発火させて、サービスや媒体側にデータを送信する必要があります。
そして、タグに関連してどこでも発生するあるあるの問題が、「イベント数の異常」です。
今回はLookerのアラート機能を使って、イベント数に異常が発生した際に、メールやSlackに通知する方法を紹介したいと思います。
イベント数の異常が発生する原因
- サイトの改修によってタグが削除されていた
- イベント発火の設定に誤りがあり、二重でイベントが飛んでいた
- ページの読み込み速度が遅くなり、タグの読み込み前にページ遷移が発生していた
などなど、イベント数の異常が発生する原因は様々です。
特に複数のチームにまたがってタグの運用・保守管理を行なっている場合は、事前に全ての原因を取り除くこと現実的でないため、イベント数の異常が発生した際に、それを検知できる仕組みが必要になります。
アラート機能とは?
Lookerで作成したダッシュボードのデータに対して、任意の条件に該当した際に、メールやSlackに通知を行うことができる機能です。
https://docs.looker.com/sharing-and-publishing/alerts
サンプルケース
今回はKARTEで取得しているviewイベントのヒット数をサンプルに、アラートを設定したいと思います。
データの準備
まずはイベント×日付単位でヒット数を集計したテーブルを用意して、Lookerから参照できる状態に設定します。
日ごとのイベント数でもアラート設定は可能ですが、平日よりも土日の方がアクセス数が多い等の理由で、DaytoDayの比較では正常な状態がアラートとして検知されるリスクがあるため、表計算を利用して過去7日間の移動平均値を用意します。
移動平均はoffset_list
関数を使うと簡単に計算ができます。
mean(offset_list(${karte_event_hits.event_count},0,7))
さらに、表計算の offset
関数を利用して、移動平均値に関する前日からの変化率を作成します。
${moving_average} / offset(${moving_average}, 1) - 1
このような形で日次のイベント数に対する過去7日間の移動平均値と前日からの変化率が追加できました。
アラートの設定
上記で作成したExplolerをダッシュボードに保存すると、タイルの右上にアラートの設定アイコンが表示されているので、そちらをクリックします。
(※開発モードでは表示されません!!)
アラートの設定画面が表示されるので、アラートを通知する条件や通知方法を設定します。
- 条件の値には先ほど作成した変化率を設定します
- 比較条件に
Changes by
を選ぶことで、変化率が上下に振れた場合も比率の絶対値を閾値とすることができます - 通知方法はメールかSlackから選択します
これでアラートの設定は完了です。
アラートにはフォロー機能があるため、他のユーザーが作ったアラートに関する通知を受け取ることも可能です。
アラートの通知
設定したアラートの条件に該当すると、内容がメールやSlackに飛んできます。
まとめ
この手の異常検知はおざなりになりがちなので、Lookerを使って簡単に実装できるのは大変助かります。また、今回は異常検知を目的に設定しましたが、応用次第で以下のようなユースケースにも対応できると思います。
- 注目度が上がった商品のページを検知する
- 過去数カ月ログインがないユーザーを検知する
- 処理量が大きいクエリを検知する
自らデータを見に行かなくともシステム側からプッシュしてくれる状態をつくることは、データ活用の第一歩だと思いますので、是非みなさんもアラート機能を使ってみてください!