您可以在可观测性数据集上创建关联的 BigQuery 数据集,这样便可以使用 BigQuery 服务查询轨迹数据。 然后,您可以将轨迹数据与业务数据集联接,并使用 BigQuery Studio 或 BigQuery API 分析 span。
如果您使用可观测性分析,则无需关联的 BigQuery 数据集即可使用 SQL 分析轨迹数据。使用 Observability Analytics 时,您还可以联接轨迹数据和日志数据。如需了解详情,请参阅使用 SQL 查询和分析轨迹以及使用 Observability Analytics 查询和分析日志。
需要关联数据集时
如果您要执行以下任何操作,则需要关联的 BigQuery 数据集:
- 将轨迹数据与其他 BigQuery 数据集联接。
- 查询来自其他服务(例如 BigQuery Studio 或数据洞察)的轨迹数据。
-
可观测性分析页面会自动在默认查询引擎上运行查询,该引擎使用免费槽。不过,您可以将此页面配置为在 BigQuery 引擎上运行查询。
创建关联的 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 端点发送请求。
您必须指定 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/datasets/DATASET_ID/links/LINK_ID您为
name字段提供的值必须与查询参数引用的关联 BigQuery 数据集相匹配。LINK_ID 字段是 BigQuery 数据集的名称。
响应是一个 Operation 对象。此对象包含有关该方法的进度的信息。当该方法完成时,Operation 对象会包含状态数据。
如需查看完整的 Observability API 端点列表,请参阅 Observability API 参考文档。
如果您在创建关联数据集时遇到权限错误,请参阅排查权限错误。