監控 Data Boost 使用情形

本頁面說明如何使用 Cloud Monitoring 和 Spanner 稽核記錄,監控及分析 Spanner Data Boost 用量。

Monitoring 可讓您追蹤一段時間內的總用量,並依使用者細分用量。Spanner 稽核記錄可讓您更靈活地分析用量,包括依使用者或 BigQuery 工作 ID 提供指標。

使用 Monitoring 追蹤 Data Boost 用量

如要追蹤 Data Boost 的整體用量,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Monitoring」。
    前往「Monitoring」
  2. 如果導覽選單中顯示「Metrics Explorer」,請選取該選項。否則,請按一下「Resources」(資源),然後選取「Metrics Explorer」。
  3. 在頁面頂端選取時間間隔。
  4. 在「Metric」(指標) 下拉式選單的「Filter by resource or metric name」(依資源或指標名稱篩選) 欄位中,輸入 spanner 並按下 Enter 鍵,縮小搜尋範圍。
  5. 在「Metric」(指標) 清單中,依序選取「Cloud Spanner Instance」(Cloud Spanner 執行個體) >「Instance」(執行個體) >「Processing unit second」(處理單元秒數),然後點選「Apply」(套用)。

    這會建立折線圖,顯示所有 Spanner 執行個體的 Data Boost 匯總用量。

  6. 如要查看特定執行個體的用量,請按照下列步驟操作:

    1. 使用「Filter」(篩選器) 欄位新增篩選器,例如執行個體 ID。
    2. 按一下「+」新增其他屬性。
  7. 如要查看所有執行個體的用量明細,請按照下列步驟操作:

    1. 按一下篩選器欄位旁的「X」X圖示,即可清除所有篩選器。
    2. 在「Aggregation」(匯總) 運算子下拉式選單中,選取「Sum」(總和),然後依 instance_id 選取。
  8. 如要依主體細分用量,請在「Aggregation」(匯總) 運算子下拉式選單中選取「Sum」(總和),然後依 credential_id 選取。

使用稽核記錄分析 Data Boost 用量

Spanner 稽核記錄可讓您更靈活地分析 Data Boost 使用情形。除了像 Monitoring 一樣,可依執行個體或主體細分用量,Spanner 稽核記錄 (如已啟用且可用) 還可依資料庫或 BigQuery 工作 ID 細分用量。

啟用稽核記錄可能會產生額外費用。如要瞭解 Cloud Logging 定價,請參閱「Google Cloud Observability 定價:Logging」。

啟用 Data Boost 使用情況稽核記錄

您必須先啟用 Spanner 的資料存取稽核記錄,才能收集 Data Boost 的使用資料。請按照以下步驟操作:

  1. 請按照「使用 Google Cloud 控制台設定資料存取稽核記錄」一文的操作說明操作。
  2. 為 Spanner API 服務啟用「資料讀取」記錄類型。
  3. 如要依 BigQuery 工作 SQL 文字取得 Data Boost 用量,請務必啟用 BigQuery 稽核記錄。

依主體查看用量

如要查詢稽核記錄,查看各使用者的 Data Boost 用量,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Logs Explorer」。

    前往 Logs Explorer

  2. 在導覽選單中,按一下「Log Analytics」(記錄檔分析)。

  3. 如要顯示過去 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 個主體的處理單元用量。

稽核記錄中各使用者的 Data Boost 用量

依 BigQuery 工作 ID 查看用量

如要查詢稽核記錄,查看 Data Boost 用量 (依資料庫、使用者和 BigQuery 工作 ID 細分),請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Logs Explorer」。

    前往 Logs Explorer

  2. 在導覽選單中,按一下「Log Analytics」(記錄檔分析)。

  3. 執行以下查詢:

    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 BigQuery') 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 的用量。

Data Boost 用量 (依工作 ID)

依 BigQuery SQL 文字查看用量

如要查看多項 BigQuery 工作的 Data Boost 用量,並依這些工作的 SQL 文字匯總,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Logs Explorer」。

    前往 Logs Explorer

  2. 在導覽選單中,按一下「Log Analytics」(記錄檔分析)。

  3. 執行以下查詢:

    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 用量。

依 SQL 文字列出的 Data Boost 用量

建立 Data Boost 警告

如要建立 Data Boost 用量超過預先定義門檻時發出的警告,請參閱「設定 Data Boost 用量警告」。

後續步驟