使用 BigQuery 分析轨迹数据

本文档介绍了如何为跟踪记录数据创建关联的 BigQuery 数据集,以及如何查询该数据集。借助关联的数据集,您可以创建和运行查询,将可观测性数据与其他业务数据联接起来。例如,您可以从 BigQuery Studio 和 Looker Studio 查询关联的数据集。您还可以在 BigQuery 后端运行 Observability Analytics 查询。

如需开始使用 Observability Analytics,请参阅 查询和分析跟踪记录

何时需要关联的数据集

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

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

准备工作

  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 Observability API.

    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 API

  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 Observability API.

    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 API

本部分介绍了必须启用的 API、创建关联的数据集所需的角色,以及如何创建关联的数据集。

前提条件

  1. 完成准备工作部分中的步骤。
  2. 如需获得在可观测性数据集上创建关联所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

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

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

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

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

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

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

从 BigQuery Studio 查询跟踪记录数据

本部分介绍了如何从 BigQuery Studio 页面查询跟踪记录数据。

如需了解使用 BigQuery 相关的费用,请参阅 BigQuery 价格

前提条件

  1. 完成准备工作部分中的步骤。
  2. 如需获得从 BigQuery 查询关联的数据集所需的权限,请让您的管理员为您授予项目或关联的数据集的 BigQuery Data Viewer (roles/bigquery.dataViewer) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

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

  3. 验证名为 _Trace 的可观测性存储桶的 关联 BigQuery 数据集 是否存在。如果关联的数据集不存在,请创建它。

使用 BigQuery Studio

如需从 Observability Analytics 页面打开 BigQuery,然后查询跟踪记录数据,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Log Analytics 页面:

    转到 Log Analytics

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 输入或加载查询。如需了解详情,请参阅 查询和分析跟踪记录

  3. 在工具栏中,展开标有运行查询在 BigQuery 中运行 的菜单,然后选择在 BigQuery 中打开

    系统会打开 BigQuery Studio 页面。在此页面上,FROM 语句 使用 BigQuery 表路径语法指定关联的数据集。您可以对查询执行任何受支持的操作,例如对其进行修改。

    如果在 BigQuery 中打开 选项处于停用状态,则表示关联的数据集不存在,或者您没有在 BigQuery 中打开和查看查询所需的权限。

  4. BigQuery Studio 页面上,点击运行查询

在 BigQuery 引擎上运行查询

默认情况下,Observability Analytics 页面会在默认查询引擎上运行您编写的查询。您运行的查询会与所有其他查询争用槽。因此,查询的执行可能会因槽不可用而延迟。默认查询引擎只能查询可观测性视图、日志存储分区中的视图和分析视图。

创建关联的数据集时,Observability Analytics 页面可让您在默认查询引擎和 BigQuery 引擎之间进行选择。如果您预留了 BigQuery 槽,并且选择了在 BigQuery 引擎上运行查询的选项,则会使用您预留的槽。在 BigQuery 引擎上运行的查询可以查询可观测性视图、日志存储分区中的视图和分析视图。这些查询还可以将可观测性数据与 BigQuery 表联接起来。

在 BigQuery 引擎上运行查询有两个主要用例:

  • 您创建基于 SQL 的提醒政策。这些政策的查询必须在 BigQuery 引擎上运行。

  • 您希望将图表保存到信息中心,其中图表显示可观测性数据与其他商家数据联接的结果。

    FROM 子句必须指定可观测性数据集中的视图或日志存储桶中的视图,并且要查询的数据还必须有一个关联的数据集。如需将可观测性数据与其他商家数据联接起来,请添加指定 BigQuery 表的 JOIN 语句。您必须拥有查询 BigQuery 表所需的 IAM 权限。

如需了解使用 BigQuery 相关的费用,请参阅 BigQuery 价格

前提条件

  1. 完成准备工作部分中的步骤。
  2. 如需获得使用 BigQuery 槽从 Observability Analytics 运行查询所需的权限,请让您的管理员为您授予以下 IAM 角色:

    • Observability View Accessor (roles/observability.viewAccessor),用于您要查询的可观测性视图。此角色支持 IAM Conditions,可让您将授予的权限限制为仅针对特定视图。如果您未为此角色授予附加条件,则正文可以访问所有可观测性视图。
    • Logs Viewer (roles/logging.viewer) 项目的
    • BigQuery User (roles/bigquery.user) 项目的
    • 项目的 BigQuery Job User (roles/bigquery.jobUser)

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

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

  3. 验证名为 _Trace 的可观测性存储桶的 关联 BigQuery 数据集 是否存在。如果关联的数据集不存在,请创建它。

如果您计划将 Observability Analytics 页面配置为在 BigQuery 槽上运行查询,并且您使用的是带有 Virtual Private Cloud (VPC) Service Controls 的项目,请验证您使用的是 BigQuery 企业版。如需了解详情,请参阅 了解 BigQuery 版本

使用 BigQuery 引擎

如需在使用 Observability Analytics 页面时在 BigQuery 引擎上运行查询,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 Log Analytics 页面:

    转到 Log Analytics

    如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。

  2. 输入或加载查询。如需了解详情,请参阅 查询和分析跟踪记录

  3. 前往工具栏,并验证是否显示了标有在 BigQuery 中运行 的按钮。

    如果工具栏显示运行查询 ,请 点击 设置 ,然后选择 BigQuery

    处于停用状态的在 BigQuery 中运行 按钮表示没有关联的数据集。如需解决此失败问题, 请创建关联的 BigQuery 数据集

  4. 点击在 BigQuery 中运行

后续步骤