BigQueryのログをkibanaみたいにグラフで可視化したいなーと前から思ってたのでやってみることにしました。
この手のサービス色々ありますが、Googleのサービスであるデータポータルはわりと使われているようなので、こちらを試してみることにします。
現在の当ブログの構成では、リクエスト/レスポンスのログはロードバランサログに出力されており、解析用にBigQueryにSyncさせています。
このデータを元に、リクエストのステータスコードを集計しデータポータルでグラフ表示させてみることにしました。
BigQueryレポートの作成
下記URLよりGoogleデータポータルを開きます。
[レポート] ページの[空のレポート] テンプレートをクリックします。
初回起動時に[マーケティング設定]や[アカウントとプライバシー設定]などの設定画面が表示されます。全て設定し保存をクリックした後、再度[空のレポート]テンプレートをクリックして下さい。
[データのレポートへの追加] 画面が表示されます。
検索ボックスに「BigQuery
」と入力すると、Google Conectors欄に[BigQuery]が表示されるので、クリックします。
BigQueryプロジェクトにアクセス権がない場合は画面にアクセス権許可を承認するよう表示されます。
[承認]をクリックします。
Google認証画面が表示される場合は、アクセス権を付与するGoogleアカウントを選択し認証を通します。
カスタムクエリでステータスコードを集計するレポートを作成
ここからはやり方は色々あります。
データポータル側でポチポチすることでグラフを作ることも出来ますが、今回はステータスコードを集計するSQLを使った方が早く作れるので、カスタムクエリを使うことにしました。
- カスタムクエリ
- データ取得元のBigQueryが存在するプロジェクト
を選択し、カスタムクエリ欄にステータスコードを集計するSQLを記述し[追加]をクリックします。
記述したSQLは下記になります。
select httpRequest.status,count(resource) as count
from 【ロードバランサログのデータセット名】.requests
where httpRequest.status IS NOT NULL
group by httpRequest.status
order by httpRequest.status asc;
レポートが作成されたあとは、データポータル側で設定を調整し、お好みのグラフで表示すれば完了です。
お試しで円グラフ表示にしてみました。
まとめ
BigQuery連携でデータポータルレポートを今回初めて作ってみましたが、SQLの実行結果でチェックするより圧倒的に視認性がいいです。
データポータル色々出来そうで、レポートをメールで定期配信する事もできるようです。
定常的にチェックする情報をグラフ化して、レポートをメール配信っていう運用やってみようかなと思います。
注意点
当然ながらBigQueryに対してクエリを発行しレポートを作成します。
膨大なデータをフルスキャンし莫大な請求がきました・・・ということにならないよう、ご注意下さい。