Cloud Trace 概览

Cloud Trace 是 Google Cloud 的分布式跟踪系统,可帮助您了解应用处理来自用户或其他应用的传入请求所需的时间,以及在处理请求时所执行的 RPC 调用等操作。在开发服务或排查故障时,Cloud Trace 也可以为您提供帮助。例如,它可以帮助您了解复杂的微服务架构中请求的处理方式,可能有助于您确定要检查的日志。

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

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

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

如需了解如何剖析应用性能,请参阅 Cloud Profiler

环境支持

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

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

具有自动跟踪的配置

某些配置会导致自动捕获轨迹数据:

  • App Engine 标准环境

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

  • Cloud Functions 和 Cloud Run

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

语言支持

下表总结了 Trace 客户端库以及具有导出至 Cloud Trace 导出器的 OpenTelemetry 库的可用性。

语言 客户端
的可用性
OpenTelemetry
lib/exporter 现已推出
C++
C# ASP.NET Core
C# ASP.NET
Go
Java
Node.js
PHP
Python
Ruby

OpenTelemetry 库比 Cloud Trace 客户端库更易于使用,因为它们隐藏了相应 Trace API 的部分复杂性。如需了解插桩建议,请参阅选择插桩方法

组件

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

跟踪客户端

如果 OpenTelemetry 库支持您的编程语言,您可以使用 OpenTelemetry 简化创建和发送轨迹数据的过程。除了更易于使用,OpenTelemetry 还实现了批处理,这有望提高性能。

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

跟踪界面

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

跟踪浏览器页面,您可以详细检查各个跟踪记录。默认情况下,此视图会显示所有跟踪记录的延迟时间图表,并以表格形式显示最近的跟踪记录。您可以选择跟踪记录以查看更多详细信息,例如跟踪记录中的 span、每个 span 和跟踪记录的延迟信息,以及指向日志和事件的链接。如需了解如何过滤和查看跟踪记录详情,请参阅查找和探索跟踪记录

通过分析报告页面,您可创建自定义报告。这些报告可以包括所有跟踪记录,也可以通过指定过滤条件,仅包括一部分跟踪记录。您还可以创建用于比较两组不同延迟数据的报告。如需了解详情,请参阅创建和查看报告

确保数据安全

Cloud Trace 是 VPC Service Controls 支持的一项服务。如需了解详情,请参阅 VPC Service Controls 文档

价格和用量

后续步骤