Cloud Trace 概览

Cloud Trace 是一种分布式跟踪系统,用于 Google Cloud 跟踪请求延迟时间,并帮助您排查 跨服务和生成式 AI 应用的性能瓶颈。通过从 Google Cloud 服务和插桩应用收集延迟时间数据,Trace 可帮助您了解请求在微服务架构中的处理方式 并识别相关日志。

Trace 可帮助您回答以下问题:

  • 您的应用处理某特定请求需要多长时间?
  • 为什么请求需要很长时间才能完成?
  • 为什么有些请求比其他请求需要更长的时间?
  • 您的应用请求的整体延迟时间是多少?
  • 应用延迟时间是随着时间的推移而增加还是减少?
  • 如何减少应用延迟时间?
  • 您的应用的依赖项有哪些?

如需了解如何将跟踪记录和日志结合使用以进行 根本原因分析,请参阅博文 排查分布式应用问题:将跟踪记录和日志结合使用以进行根本原因分析

如需了解如何分析应用, 请参阅 Cloud Profiler

环境支持

Trace 在以下环境中的 Linux 上运行:

组件

Trace 包含一个跟踪客户端,该客户端会收集 跟踪记录 并 将其发送到您的 Google Cloud 项目。然后,您可以使用 Google Cloud 控制台查看和分析跟踪客户端收集的数据。 如需了解数据模型,请参阅 跟踪记录和 span

跟踪客户端

跟踪客户端会从应用收集延迟时间和 span 数据,并将其 导出到您的 Google Cloud 项目。根据您的环境和要求,您可以通过对应用代码进行插桩来自动或手动收集跟踪记录数据。

跟踪界面

如需查看和分析 span 数据,您可以使用 Trace 探索器Observability Analytics页面中的 Google Cloud 控制台:

  • Trace 探索器:显示有关 跟踪记录数据的汇总信息,并让您详细检查各个跟踪记录。汇总的延迟时间数据会显示在热图上,您可以使用指针探索该热图。如需限制显示的数据,您可以添加过滤条件。 您还可以查看和探索各个 span 和跟踪记录:

  • Observability Analytics:提供 SQL 查询界面。您的查询可以联接跟踪记录和日志数据,并且您可以将查询结果以表格或图表的形式查看。如果您创建了关联的 BigQuery 数据集,则可以使用 BigQuery 分析跟踪记录 数据。如需了解详情,请参阅查询和分析跟踪记录

具有自动跟踪功能的配置

以下配置会自动捕获跟踪记录数据:

  • App Engine 标准环境

    • 第一代运行时会自动拦截跟踪记录 span 并将其发送到 Cloud Trace。如需了解详情,请参阅 旧版捆绑服务概览

    • 第二代运行时会自动捕获整体请求延迟时间,并将 X-Cloud-Trace-Context HTTP 标头添加到请求中。 如需了解详情,请参阅 运行时支持时间表

  • Cloud Run functions 和 Cloud Run

    对于传入和传出的 HTTP 请求,延迟时间数据会自动发送到 Trace。

对应用进行插桩

对应用进行插桩,以收集有助于您了解其性能和排查故障的特定信息。 有几种开源插桩框架可收集日志、指标和跟踪记录 数据,并将这些数据发送给任何供应商,包括 Google Cloud。对于您的 代理应用,某些框架可以收集您的提示和回答,或 传递上下文,以便跟踪某些远程 Google Cloud MCP 服务器调用。

如需对应用进行插桩,我们建议您使用不受制于供应商的开源插桩框架(例如 OpenTelemetry),而不是使用 供应商和产品特有的 API 或客户端库。 如需了解这些框架,请参阅 插桩和可观测性以及 选择插桩方法

我们提供的插桩示例使用 OpenTelemetry

虽然您可以使用 Cloud Trace 客户端库对应用进行插桩,但我们建议您使用 OpenTelemetry。OpenTelemetry 库比 Trace 客户端库更可取,因为它们更简单,并且以 OTLP 格式导出跟踪记录数据,而 OTLP 格式由 OpenTelemetry 定义。如需了解详情, 请参阅对 Trace 进行插桩Cloud Trace 的客户端库

Cloud Trace 和代理应用

如需了解代理应用的行为,请将其配置为 在调用远程 Google Cloud MCP 服务器时收集提示和回答或生成 span。提示和回答有助于您了解代理应用使用的推理。记录工具调用的 span 有助于您确认工具调用、调用状态和请求延迟时间。

有几个插桩示例演示了如何配置应用以收集提示和回答。这些示例依赖于 OpenTelemetry。如需了解详情,请参阅 如何对生成式 AI 应用进行插桩处理

Google Cloud MCP 服务器可以生成跟踪记录 span。如需了解详情,请参阅 使用 Trace 调查 MCP 调用

注入跟踪记录数据的 API

您可以使用 Telemetry API 或 Cloud Trace API 将跟踪记录数据发送到您的项目。 我们建议使用 Telemetry API,原因如下:

  • 此 API 可与开源 OpenTelemetry 生态系统兼容,并且 其限制通常比 Cloud Trace API(一种专有 Google Cloud API)的限制更宽松。

  • 您的跟踪记录数据以通常与 OTLP 定义的 proto 文件一致的格式存储。在存储之前,某些字段可能会从 OpenTelemetry 特定的数据类型转换为 JSON 数据类型。如需了解存储格式,请参阅 跟踪记录数据的架构

  • 对于基于收集器的跟踪记录数据导出,您的插桩不依赖于 特定于 Google Cloud的导出器。

  • 某些功能(如“应用监控”)依赖于仅在您将跟踪记录数据发送到 Telemetry API 时才可用的信息。

如需阻止您的 Google Cloud 项目存储跟踪记录数据,请停用 Cloud Trace API。停用 Cloud Trace API 会产生以下影响:

  • Google Cloud 服务不会将跟踪记录数据发送到您的项目。
  • Google Cloud 会使用错误代码回复发送到 Cloud Trace API 端点的请求。
  • Google Cloud Observability 会舍弃发送到特定于跟踪记录的 Telemetry API 端点的跟踪记录数据。请勿停用 Telemetry API,因为该 API 可以接收日志、指标和跟踪记录数据。

如果您管理组织并希望阻止使用 Cloud Trace,请 创建 组织政策限制条件

VPC Service Controls 支持

Trace 是 VPC Service Controls 支持的一项服务。Trace 服务名称为 cloudtrace.googleapis.com。您为 Trace 服务创建的任何 VPC Service Controls 限制仅适用于该服务。这些限制 不适用于任何其他服务(包括也可以注入跟踪记录数据的 telemetry.googleapis.com 服务等服务)。

详情请参阅以下内容:

Cloud Trace 和数据驻留

如果您因数据驻留或影响级别 4 (IL4)要求而使用Assured Workloads,则不应使用 Cloud Trace API 发送跟踪记录 span。

如需阻止您的 Google Cloud 项目存储跟踪记录数据,请停用 Cloud Trace API。请勿停用 Telemetry API,因为该 API 可以接收日志、指标和跟踪记录数据。

Trace 保留

类别 保留期限
存储在 _Trace 存储桶中 30 天

IAM 角色

Cloud Trace 使用 Identity and Access Management (IAM) 来控制对资源的访问权限。 如需查看 Cloud Trace API 和 Telemetry API 角色的列表,请参阅 使用 IAM 控制访问权限

由于 Telemetry API 是消费者 API,因此向 Telemetry API 发送数据需要您指定配额项目,并授予应用的服务帐号使用该配额的权限。如需了解更多 信息,请参阅 Telemetry API:身份验证

价格

如需了解 Cloud Trace 的价格,请参阅 Google Cloud Observability 价格 页面。

后续步骤