创建关联的 BigQuery 数据集

您可以在可观测性数据集上创建关联的 BigQuery 数据集,以便使用 BigQuery 服务 查询跟踪数据。 然后,您可以使用 BigQuery Studio 或 BigQuery API 将跟踪数据与业务数据集联接,并分析 span。

如果您使用 Observability Analytics,则无需关联的 BigQuery 数据集即可使用 SQL 分析跟踪数据。您还可以在使用 Observability Analytics 时联接跟踪数据和日志数据。如需了解详情,请参阅 使用 SQL 查询和分析跟踪记录以及 使用 Observability Analytics 查询和分析日志

何时需要关联的数据集

如果您要执行以下任何操作,则需要关联的 BigQuery 数据集:

  • 将跟踪数据与其他 BigQuery 数据集联接。
  • 查询来自其他服务(例如 BigQuery Studio 或数据洞察)的跟踪数据。
  • 在 BigQuery 引擎上运行可观测性分析页面中的查询

    可观测性分析 页面会自动在默认查询引擎上运行查询,该引擎使用空闲槽。不过,您可以将此页面配置为在 BigQuery 引擎上运行查询。

  • 使用提醒政策监控 SQL 查询结果

  • 运行自动数据流水线、持续分析查询或 AI 代理工作流,以编程方式读取大量跟踪数据,而不会受到 Trace API 速率限制。

创建关联的 BigQuery 数据集

本部分介绍如何在可观测性数据集上创建关联的 BigQuery 数据集,以便使用 BigQuery 服务查询跟踪数据。每个可观测性数据集都支持一个关联的 BigQuery 数据集。

创建关联的数据集时,您会启动一个长时间运行的操作。 该操作会执行以下几项操作:

  • 审核日志会记录创建链接的请求以及操作的完成情况。
  • 如果 Monitoring 服务账号 不存在,Google Cloud Observability 会创建该账号。

    必须启用 Cloud Monitoring API 才能创建此服务帐号。

  • Google Cloud Observability 需要服务帐号,然后才能创建关联的数据集。 必要时,系统会创建服务帐号:

  • 审核日志会记录来自服务代理管理器的请求,以 向 Monitoring 服务账号授予 Monitoring Service Agent IAM 角色。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud的新用户,请 创建账号,以便在 真实场景中评估我们产品的性能。新客户还可以获得 300 美元的免费抵用金,用于 运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Monitoring and Observability APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Monitoring and Observability APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  8. 如需获得在可观测性数据集上创建链接所需的权限,请让您的管理员为您授予项目的 Observability Editor (roles/observability.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

创建数据集

gcloud

在使用以下任何命令数据之前, 请进行以下替换:

  • LINK_ID:BigQuery 数据集的名称。
  • DATASET_ID:数据集的 ID。您的跟踪数据存储在名为 Spans 的数据集中。
  • BUCKET_ID:可观测性存储桶的 ID。例如,此 ID 可能是 _Trace
  • LOCATION:可观测性存储分区的位置。
  • PROJECT_ID:项目的标识符。

执行 gcloud beta observability buckets datasets links create 命令:

Linux、macOS 或 Cloud Shell

gcloud beta observability buckets datasets links create \
  projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/links/LINK_ID \
 --dataset=DATASET_ID\
 --bucket=BUCKET_ID \
 --location=LOCATION \
 --project=PROJECT_ID

Windows (PowerShell)

gcloud beta observability buckets datasets links create `
  projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/links/LINK_ID `
 --dataset=DATASET_ID`
 --bucket=BUCKET_ID `
 --location=LOCATION `
 --project=PROJECT_ID

Windows (cmd.exe)

gcloud beta observability buckets datasets links create ^
  projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/links/LINK_ID ^
 --dataset=DATASET_ID^
 --bucket=BUCKET_ID ^
 --location=LOCATION ^
 --project=PROJECT_ID

create 命令会启动一个长时间运行的操作。以下是该命令成功执行时的响应示例:

Create request issued for: [mydataset]
Waiting for operation [projects/my-project/locations/us/operations/operation-1775164903749-64e80c9817833-9ff804b6-c3e9cbe7] to complete...done.
Created link [mydataset].

REST

如需创建指向 BigQuery 数据集的链接,请向 projects.locations.buckets.datasets.links.create 端点发送请求。

您必须指定父级参数,该参数具有以下形式:

projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID

上一个表达式中的字段具有以下含义:

  • PROJECT_ID:项目的标识符。
  • LOCATION:可观测性存储桶的位置
  • BUCKET_ID:可观测性存储桶的 ID。例如,此 ID 可能是 _Trace
  • DATASET_ID:要查询的数据集的 ID。例如,此 ID 可能是 Spans

此命令需要查询参数和请求正文:

  • 必须指定查询参数 linkId,并将其设置为 BigQuery 数据集的名称。例如,linkId="my_link"。BigQuery 数据集名称对于您的 Google Cloud 项目必须是唯一的, 并且不得超过 100 个字符,只能包含字母、 数字和下划线。

  • 请求正文是一个 Link 对象。name 字段的值具有以下格式:

    projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/links/LINK_ID
    

    您为 name 字段提供的值必须与查询参数引用的关联 BigQuery 数据集匹配。

    LINK_ID 字段是 BigQuery 数据集的名称。

响应是一个 Operation 对象。 此对象包含有关方法进度的信息。当该方法完成时,Operation 对象会包含状态数据。

如需查看 Observability API 端点的完整列表, 请参阅 Observability API 参考文档

如果您在创建关联的数据集时遇到权限错误, 请参阅排查权限错误

后续步骤