监控 Data Boost 用量

本页面介绍如何使用 Cloud Monitoring 和 Spanner 审核日志监控和分析 Spanner Data Boost 使用情况。

Cloud Monitoring 能够跟踪一段时间内的总用量,并按用户细分该用量。Spanner 审核日志可以更灵活地分析使用情况,包括按用户或 BigQuery 作业 ID 提供指标。

使用 Cloud Monitoring 跟踪 Data Boost 用量

请按照以下步骤跟踪流量提升总体使用情况:

  1. 在 Google Cloud 控制台中,前往 Monitoring
    转到 Monitoring
  2. 如果导航菜单中显示 Metrics Explorer,请选择它。 否则,请点击 Resources,然后选择 Metrics Explorer
  3. 在页面顶部,选择时间间隔。
  4. 指标下拉列表的按资源或指标名称过滤字段中,输入 spanner 并按 Enter 以缩小搜索范围。
  5. 指标列表中,选择 Cloud Spanner Instance > Instance > Processing Unit Second,然后点击 Apply

    这将创建一个折线图,显示所有 Spanner 实例中 Data Boost 总体用量的折线图。

  6. 如需查看特定实例的用量,请按以下步骤操作:

    1. 点击 + 添加过滤条件以创建过滤条件。
    2. 标签 1 下拉列表中,选择 instance_id
    3. 值 1 文本字段中,输入或选择要显示其用量的实例的 ID。
  7. 如需查看所有实例的用量明细,请按以下步骤操作:

    1. 点击过滤条件字段旁边的垃圾箱图标,以清除所有过滤条件。
    2. 分组依据下的标签下拉列表中,选择 instance_id,然后在分组函数列表中选择 Sum
  8. 如需按主账号细分用量,请在分组依据下,从标签列表中选择 credential_id,从分组函数列表中选择求和

以下示例按主账号显示了处理单元秒数。

处理单元数(按用户)

使用审核日志分析 Data Boost 使用情况

借助 Spanner 审核日志,您可以更灵活地分析 Data Boost 使用情况。除了能够像 Cloud Monitoring 一样按实例或主账号细分使用情况之外,Spanner 审核日志(如果已启用且可用)还允许按数据库或 BigQuery 作业 ID 细分一段时间内的用量。

启用审核日志可能会产生额外费用。如需了解 Logging 价格,请参阅 Google Cloud 可观测性价格:Cloud 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。

    转到日志浏览器

  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 个主帐号在处理单元中的用量。

审核日志中用户的数据提升用量

按 BigQuery 作业 ID 查看用量

如需查询审核日志以查看按数据库、用户和 BigQuery 作业 ID 细分的 Data Boost 用量,请按以下步骤操作:

  1. 转到 Google Cloud 控制台中的 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 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 的使用情况。

Data Boost 用量(按作业 ID)

按 BigQuery SQL 文本查看用量

如需查看由这些作业的 SQL 文本汇总的多个 BigQuery 作业的 Data Boost 用量,请按照以下步骤操作:

  1. 转到 Google Cloud 控制台中的 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 用量。

Data Boost 用量(按 SQL 文本)

创建 Data Boost 提醒

如需创建在 Data Boost 用量超过预定义阈值时发出的提醒,请参阅设置 Data Boost 用量提醒

后续步骤