Cloud Trace 概览

Cloud Trace 是 Google Cloud的分布式跟踪系统,可帮助您 了解应用处理来自用户或其他应用的传入 请求所需的时间,以及完成处理请求时执行的 操作(例如 RPC 调用)所需的时间。 在开发服务、开发代理应用或排查失败问题时,Trace 也能为您提供帮助。例如,它可以帮助您了解请求是如何在复杂的微服务架构中得到处理的,还可以帮助您确定需要检查哪些日志。

由于 Trace 可从 Google Cloud 服务 (例如 App Engine)以及您插桩的应用接收延迟时间数据,因此它可以帮助您回答以下问题:

  • 我的应用处理某特定请求需要多长时间?
  • 为什么我的应用需要这么长的时间来处理请求?
  • 为什么一些请求花费的时间比其他请求长?
  • 我的应用请求的整体延迟是多少?
  • 随着时间的推移,我的应用的延迟是增加还是减少?
  • 如何缩短应用延迟时间?
  • 我的应用的依赖项有哪些?

如果您想了解如何使用 Trace 来帮助您管理 应用,请阅读博客 排查分布式应用问题:将跟踪记录和日志结合使用以进行根本原因分析

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

环境支持

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

Trace 提供了用于对应用进行插桩以捕获跟踪记录信息的客户端库。如需了解每种语言的设置说明, 请参阅为 Trace 插桩

具有自动跟踪功能的配置

某些配置会导致自动捕获跟踪记录数据:

  • App Engine 标准环境

    Java 8、Python 2 和 PHP 5 应用不需要使用 Trace 客户端库。这些运行时会自动向 Trace 发送与应用 URI 请求有关的延迟时间数据。 这些请求包括对 App Engine 服务的往返 RPC 调用的延迟时间数据。除了 Cloud SQL 之外,Trace 适用于所有 App Engine Admin API。

  • Cloud Run functions 和 Cloud Run

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

可接收跟踪记录数据的 API

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

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

  • 您的跟踪记录数据以通常与 OpenTelemetry 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,请 创建 组织政策限制条件

Cloud Trace 和代理应用

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

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

如需了解哪些远程 Google Cloud MCP 服务器支持生成跟踪记录,以及如何配置应用以指示这些服务器创建 span,请参阅使用 Trace 调查 MCP 调用

如何对应用进行插桩处理

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

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

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

  • 如需了解哪些远程 Google Cloud MCP 服务器支持生成跟踪记录,以及如何配置应用以指示这些服务器创建 span,请参阅使用 Trace 调查 MCP 调用

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

组件

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

跟踪客户端

OpenTelemetry除了更易于使用之外,OpenTelemetry 还实现了批处理,这可能会提高性能。

如果 OpenTelemetry 库不存在,请通过导入 Trace SDK 库并使用 Cloud Trace API 来对代码进行插桩。 Cloud Trace API 会将跟踪记录数据发送到您的 Google Cloud 项目。

跟踪界面

您可以在 Trace 界面中近乎实时地查看和分析跟踪记录数据。

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

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

  • Observability Analytics:您可以在此页面中运行使用 SQL 对 span 执行汇总 分析的查询。您的 SQL 查询还可以联接跟踪记录和日志数据。您可以表格形式或使用图表查看查询结果。如果您创建了关联的数据集,则可以使用 BigQuery 分析 span。如需了解详情,请参阅 查询和分析跟踪记录

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。停用 Cloud Trace API 会导致以下结果:

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

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

价格

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

后续步骤