このページでは、Cloud Monitoring と Spanner の監査ログを使用して Spanner Data Boost の使用状況をモニタリングし、分析する方法について説明します。
Cloud Monitoring には、時間経過に伴う合計使用量を追跡し、その使用状況をユーザー別に分類する機能があります。Spanner 監査ログを使用すると、ユーザーまたは BigQuery ジョブ ID ごとの指標の提供など、より柔軟な使用状況分析が可能になります。
Cloud Monitoring を使用して Data Boost の使用状況を追跡する
Data Boost の全体的な使用量を追跡する手順は次のとおりです。
- Google Cloud コンソールで [Monitoring] に移動します。
[モニタリング] に移動 - ナビゲーション メニューに [Metrics Explorer] が表示されている場合は選択します。 それ以外の場合は、[リソース]をクリックして [Metrics Explorer] を選択します。
- ページの上部で、[期間] を選択します。
- [指標] プルダウン リストで [リソースまたは指標名でフィルタリングする] フィールドに「
spanner
」と入力し、Enter
を押して検索を絞り込みます。 [指標] リストで、[Cloud Spanner インスタンス] > [インスタンス] > [処理単位秒数] を選択し、[適用] をクリックします。
これにより、すべての Spanner インスタンスにまたがる Data Boost の集計使用量の折れ線グラフが作成されます。
特定のインスタンスの使用状況を表示する手順は次のとおりです。
- [フィルタ] フィールドを使用して、インスタンス ID などのフィルタを追加します。
- [+] をクリックして他の属性を追加します。
すべてのインスタンスの使用状況の内訳を表示する手順は次のとおりです。
- フィルタ フィールドの横にある [X] アイコンをクリックして、フィルタをすべて消去します。
- [集計] 演算子のプルダウン リストで [合計] を選択し、[instance_id] を選択します。
プリンシパル別に使用状況を分類するには、[集計] 演算子のプルダウンで [合計] を選択し、[credential_id] を選択します。
監査ログを使用して Data Boost の使用状況を分析する
Spanner 監査ログを使用すると、Data Boost の使用状況をより柔軟に分析できます。Cloud Monitoring と同様に、インスタンスやプリンシパルごとの使用状況を時系列で分類する機能に加えて、Spanner 監査ログ(有効化されて使用可能な場合)はデータベースや BigQuery ジョブ ID で時系列での使用状況の内訳を調べることもできます。
監査ログを有効にすると、追加料金が発生する可能性があります。Logging の料金については、Google Cloud Observability の料金: Cloud Logging をご覧ください。
Data Boost の使用状況監査ログを有効にする
Data Boost の使用状況データを収集する前に、Spanner のデータアクセス監査ログを有効にする必要があります。方法は次のとおりです。
- Google Cloud コンソールでデータアクセスの監査ログを構成するの手順に従います。
- Spanner API サービスの [データ読み取り] ログタイプを有効にします。
- BigQuery ジョブの SQL テキストによる Data Boost の使用量を取得するには、BigQuery の監査ログも有効になっていることを確認してください。
プリンシパル別の使用状況を表示する
監査ログに対してクエリを実行して、ユーザーごとの Data Boost の使用状況を表示する手順は次のとおりです。
Google Cloud コンソールのログ エクスプローラに移動します。
ナビゲーション メニューで、[ログ分析] をクリックします。
過去 7 日間のユーザーとデータベースごとの使用状況を表示するには、次のクエリを実行します。使用量が表示される期間を変更するには、
WHERE
句のtimestamp
式を変更します。SELECT SUM(CAST(JSON_VALUE(labels.data_boost_usage) AS INT64)) AS usage, REGEXP_EXTRACT( proto_payload.audit_log.resource_name, 'projects/[^/]+/instances/[^/]+/databases/[^/]+') AS database, proto_payload.audit_log.authentication_info.principal_email AS principal_email FROM `PROJECT_NAME.global._Default._AllLogs` WHERE timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND resource.type = 'spanner_instance' AND operation.last IS NULL AND JSON_VALUE(labels.data_boost_usage) != '' GROUP BY database, principal_email;
PROJECT_NAME
をプロジェクト名に置き換えます。
次の例では、4 つのプリンシパルの処理単位での使用量を示しています。
BigQuery ジョブ ID 別の使用状況を表示する
監査ログにクエリを実行して、データベース、ユーザー、BigQuery のジョブ ID 別に Data Boost の使用状況の内訳を表示する手順は次のとおりです。
Google Cloud コンソールのログ エクスプローラに移動します。
ナビゲーション メニューで、[ログ分析] をクリックします。
次のクエリを実行します。
SELECT SUM(CAST(JSON_VALUE(labels.data_boost_usage) AS INT64)) AS usage, REGEXP_EXTRACT( proto_payload.audit_log.resource_name, 'projects/[^/]+/instances/[^/]+/databases/[^/]+') AS database, proto_payload.audit_log.authentication_info.principal_email AS principal_email, IFNULL(JSON_VALUE(labels.data_boost_workload_id), 'not from BQ') AS job_id FROM `PROJECT_NAME.global._Default._AllLogs` WHERE timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND resource.type = 'spanner_instance' AND operation.last IS NULL AND JSON_VALUE(labels.data_boost_usage) != '' GROUP BY database, principal_email, job_id;
PROJECT_NAME
をプロジェクト名に置き換えます。
次の例は、BigQuery ジョブ ID 別の使用状況を示しています。
BigQuery SQL テキストごとの使用状況を表示する
これらのジョブの SQL テキストによって集計された複数の BigQuery ジョブの Data Boost の使用量を表示する手順は次のとおりです。
Google Cloud コンソールのログ エクスプローラに移動します。
ナビゲーション メニューで、[ログ分析] をクリックします。
次のクエリを実行します。
SELECT SUM( CAST( JSON_VALUE(db.labels.data_boost_usage) AS INT64)) AS usage, JSON_VALUE( bq.proto_payload.audit_log.metadata.jobInsertion.job.jobConfig.queryConfig.query) AS bq_query FROM `PROJECT_NAME.global._Default._AllLogs` db, `PROJECT_NAME.global._Default._AllLogs` bq WHERE db.timestamp > TIMESTAMP_SUB( CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND db.resource.type = 'spanner_instance' AND JSON_VALUE(db.labels.data_boost_usage) != '' AND db.operation.last IS NULL AND bq.timestamp > TIMESTAMP_SUB( CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND bq.proto_payload.audit_log.method_name = 'google.cloud.bigquery.v2.JobService.InsertJob' AND bq.resource.type = 'bigquery_project' AND JSON_VALUE( bq.proto_payload.audit_log.metadata.jobInsertion.job.jobConfig.queryConfig.query) IS NOT NULL AND JSON_VALUE(db.labels.data_boost_workload_id) = REGEXP_EXTRACT(bq.proto_payload.audit_log.resource_name, '[^/]*$') GROUP BY bq_query ORDER BY usage DESC
PROJECT_NAME
をプロジェクト名に置き換えます。
次の例は、SQL テキストによる Data Boost の使用量を示しています。
Data Boost アラートを作成する
Data Boost の使用量が事前定義されたしきい値を超えたときに発行されるアラートを作成するには、Data Boost の使用量に関するアラートを設定するをご覧ください。
次のステップ
- Data Boost の概要で Data Boost について確認する。