A Day in the Life

Firebase Hosting のアクセスログから、リファラを確認する

このサイトでは、Google Analytics などのアクセス解析は行っていない。しかしながら、誰かが他の記事などで、私の記事へ言及したかもしれない、ということは知りたい。ゼロ年代なら Apache の Combined Log や LTSV 形式で出力したものをパイプで処理したり、何らかのログアナライザに喰わせ見る、というのが手っ取り早かったのだけど、残念ながらもう2020年だし、ここはアクセスログがそのような形式で出力されない Firebase Hosting で動いている。

ただ Firebase Hosting は有効にすることで、構造化されたアクセスログを Google Cloud Logging に出力できる。保持される期間は直近1ヶ月。そしてその Cloud Logging はビュアーとして Web UI の Metrics Explorer (Cloud Monitoring) があり、そこで Cloud Logging に送られた構造化ログをアレコレしてみることができる。

まずは Cloud Logging のログベースの指標にて、ユーザ定義指標を作成する。なお2020年11月現在、「古いログビュアーのエディタ」でないと、指標が作成できなかった(見落としかもしれない)。指標エディタに、例えば名前 referer、ラベル referer フィールド名を httpRequest.referer、タイプをカウンターで指標を作成する。また、Cloud Logging にログが送られるまである程度時間がかるため、Hosting -> Logging を有効にしてすぐだと何も起こらないかもしれない。これで、ログベースの指標に user/referer という項目が出来上がったはず。

続いて、Metrics Explorer のほうで、Metrics としてリファラ値である、さきほど作った logging/user/referer を入れ、情報を絞っていく。Group By で referer を、アドバンスドオプションで Alinger を count に指定すると リファラ URL とそのカウントが得られる。Value を UI からソートすれば、上位のリファラカウントが得られる。ノイズもある程度あるので、それらは filter の簡易否定マッチ !=~ で省いていく。

するとこんな感じでリファラの表示をすることができる。を、なにやら言及があったぞ、と知ることができる。またたいしてアクセスが無いサイトなので、がりっと長期間のアクセスログに対してフィルタなどをかけてもだいたい即座に反映される。

referer

セットした様々なパラメータがブラウザの URL に追加され、状態を復元できるURLが自動で作られているの(Valueのorderは記録されていないようだけど)で、完成形のURLをブックマークに入れれば、かんたんにリファラが確認できる。もちろん期間も1ヶ月以内であれば指定できる。

やりたいことは大したことがないのだけど、Cloud Logging と Cloud Monitoring に不慣れだったため、この設定をセットするまでに時間がかかってしまった。