您可以在可观测性数据集上创建关联的 BigQuery 数据集,以便使用 BigQuery 服务 查询跟踪数据。 然后,您可以使用 BigQuery Studio 或 BigQuery API 将跟踪数据与业务数据集联接,并分析 span。
如果您使用 Observability Analytics,则无需关联的 BigQuery 数据集即可使用 SQL 分析跟踪数据。您还可以在使用 Observability Analytics 时联接跟踪数据和日志数据。如需了解详情,请参阅 使用 SQL 查询和分析跟踪记录以及 使用 Observability Analytics 查询和分析日志。
何时需要关联的数据集
如果您要执行以下任何操作,则需要关联的 BigQuery 数据集:
- 将跟踪数据与其他 BigQuery 数据集联接。
- 查询来自其他服务(例如 BigQuery Studio 或数据洞察)的跟踪数据。
-
可观测性分析 页面会自动在默认查询引擎上运行查询,该引擎使用空闲槽。不过,您可以将此页面配置为在 BigQuery 引擎上运行查询。
运行自动数据流水线、持续分析查询或 AI 代理工作流,以编程方式读取大量跟踪数据,而不会受到 Trace API 速率限制。
创建关联的 BigQuery 数据集
本部分介绍如何在可观测性数据集上创建关联的 BigQuery 数据集,以便使用 BigQuery 服务查询跟踪数据。每个可观测性数据集都支持一个关联的 BigQuery 数据集。
创建关联的数据集时,您会启动一个长时间运行的操作。 该操作会执行以下几项操作:
- 审核日志会记录创建链接的请求以及操作的完成情况。
如果 Monitoring 服务账号 不存在,Google Cloud Observability 会创建该账号。
必须启用 Cloud Monitoring API 才能创建此服务帐号。
Google Cloud Observability 需要服务帐号,然后才能创建关联的数据集。 必要时,系统会创建服务帐号:
Cloud Observability 服务账号: 可观测性数据集上的链接需要此账号。
Cloud Logging 服务账号: 日志存储桶上的链接需要此账号。
审核日志会记录来自服务代理管理器的请求,以 向 Monitoring 服务账号授予 Monitoring Service Agent IAM 角色。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud的新用户,请 创建账号,以便在 真实场景中评估我们产品的性能。新客户还可以获得 300 美元的免费抵用金,用于 运行、测试和部署工作负载。
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Monitoring and Observability APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Monitoring and Observability APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. 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.-
如需获得在可观测性数据集上创建链接所需的权限,请让您的管理员为您授予项目的 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 参考文档。
如果您在创建关联的数据集时遇到权限错误, 请参阅排查权限错误。