创建关联的 BigQuery 数据集

本文档介绍了如何在可观测性数据集上创建关联的 BigQuery 数据集。然后,您可以使用 BigQuery 服务(例如 BigQuery Studio 和 BigQuery API)查询关联的数据集。

如需开始使用 Observability Analytics,请参阅查询和分析轨迹

需要关联数据集时

如果您想查询轨迹数据,或者查询轨迹数据和日志数据,则无需关联的 BigQuery 数据集。对于这些场景,您可以使用 Observability Analytics 页面。如需了解如何查询日志数据,请参阅使用 Observability Analytics 查询和分析日志

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

创建关联的 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 Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. 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 Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. 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 端点发送请求。

您必须指定 parent 参数,该参数采用以下形式:

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/dataset/DATASET_ID/links/LINK_ID
    

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

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

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

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

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

后续步骤