【BigQuery】ユーザー(サービスアカウント)が実行するクエリを監視する/

cost BigQuery

状況

某PJにジョインしていた際に、GCPで莫大な1クエリ300ドルもかかってしまいました。。

予防策として、BigQueryで実行するすべてのクエリを監視できる体制を整えたい。

アーキテクチャ

  • Cloud Loggingで監査ログを収集。
    • BigQueryのログを収集。
  • Pub/Subでトピックを作成し、ルーティングする。
    • ログエクスプローラーからシンクを作成する。
  • Pub/Subのメッセージをトリガーに、Functionsを動かす。

シンク設定内容

ログエクスプローラーの画面で、以下条件で一度クエリを実行する。

  • BigQueryのクエリ
  • 料金が発生するクエリ(実行完了したクエリ)

実際に叩くクエリは以下。

resource.type="bigquery_resource"
protoPayload.methodName="jobservice.jobcompleted"
protoPayload.serviceData.jobCompletedEvent.eventName="query_job_completed" 

シンク設定方法

クエリ実行結果の上部に表示されるメニューから、「シンクを作成」を選択し、名称を設定する。

コメント

タイトルとURLをコピーしました