Cloud Trace 概览

Cloud Trace 是 Google Cloud 的分布式跟踪系统,可帮助您了解应用处理来自用户或其他应用的传入请求所需的时间,以及完成处理请求时执行的操作(例如 RPC 调用)所需的时间。

由于 Cloud Trace 可从 App EngineHTTP(S) 负载平衡器以及通过 Cloud Trace API 插桩的应用收集延迟时间数据,因此它可以帮助您回答以下问题:

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

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

环境支持

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

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

具有自动跟踪的配置

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

  • App Engine 标准环境

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

  • Cloud Functions 和 Cloud Run

    对于传入和传出的 HTTP 请求,系统会自动收集延迟数据。

语言支持

下表总结了 Trace 客户端库、OpenTelemetry 库(具有导出到 Cloud Trace 的导出器)和 OpenCensus 库(包含 Stackdriver 导出器)的可用性。

语言 客户端
的可用性
可使用 OpenTelemetry
lib/exporter
OpenCensus
lib/exporter 可用
C# ASP.NET Core
C# ASP.NET
Go
Java
Node.js
PHP
Python
Ruby

OpenTelemetry 库比 Cloud Trace 客户端库更易于使用,因为它们隐藏了相应 Trace API 的一些复杂性。如果您使用这些库,请对应用进行插桩 (instrument) 处理以使用 Cloud Trace 导出器。如需查看常规设置说明,请参阅设置 Cloud Trace

如果您要编写在 Compute Engine 上运行的应用,还可以使用 Ops Agent 和 OpenTelemetry Protocol (OTLP) 接收器从应用中收集跟踪记录和指标。使用 Ops Agent 时,您无需使用 Trace 导出器与 Trace API 进行交互。如需了解详情,请参阅使用 Ops Agent 和 OTLP

组件

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

trace跟踪记录会描述应用完成单个操作所需的时间。每条跟踪记录包含一个或多个 span。Span 会描述执行完整子操作所需的时间。例如,跟踪记录可能会描述处理用户的传入请求并返回响应所需的时间。Span 可能会描述特定 RPC 调用所需的时长。如需了解详情,请参阅 Cloud Trace 的数据模型

跟踪客户端

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

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

跟踪界面

在代理收集跟踪记录数据后,您可以在 Cloud Trace 界面中几乎实时地查看和分析这些数据。该界面包含三个页面:概览Trace Explorer分析报告

在 Google Cloud 控制台搜索栏中,输入 Trace 概览。在搜索结果中,转到产品和页面部分,然后选择 Trace概览页面:

转到 Trace 概览

除非您有权访问接收 Trace 数据的 Google Cloud 项目,否则 Trace 控制台不会显示数据。

概览

概览页面会提供与您的应用有关的摘要信息:

Cloud Trace 概览页面。

数据分析窗格会显示应用的性能分析信息列表(如适用)。此窗格会突出显示应用中的常见问题,例如对某函数的连续调用(如果进行批量调用,则可能更为高效)。

最近的跟踪活动窗格会显示最近的跟踪记录。对于每条跟踪记录,系统会显示延迟情况、URI 和时间。您可以使用此摘要来了解应用中的当前活动。

最常见的 URI最常见的 RPC 会列出前一天最常见的 URI(和 RPC)以及平均延迟时间。如果您点击其中任一表中的链接,则会打开 Trace Explorer 页面,该页面已预先配置为显示匹配请求。如需查看延迟时间数据(时间函数形式)并调查跟踪记录的详细信息,请使用 Trace Explorer 页面。

付费跟踪记录 Span 窗格会显示当前日历月中提取的 span 数,以及上个月的总 span 数。您可以使用此信息来监控 Cloud Trace 的使用费用。如需详细了解费用,请参阅价格页面。

每日分析报告窗格会显示前一天的延迟数据,并将其与过去 7 天内的延迟数据进行比较。通过这些数据,您可以了解延迟行为是否在随时间发生变化。您无法在此页面上更改报告的格式。不过,您可以创建自定义分析报告。

如需详细了解 Cloud Trace 概览页面,请参阅查看跟踪记录概览

Trace Explorer

Trace Explorer 页面中,您可以详细检查各个跟踪记录。默认情况下,此视图会显示一个包含所有跟踪记录的延迟时间的图表,并会在一个表中列出最近的跟踪记录。

如果您选择要查看的特定跟踪记录,则系统会打开两个新窗格:一个是显示跟踪记录中所有 span 的窗格,另一个是显示有关选定 span 详情的信息窗格。默认情况下,系统会选择根 span,并且详细信息包含有关请求的摘要信息。如需出于调查目的查找跟踪记录,您可以使用过滤条件。

如需详细了解如何过滤和查看跟踪记录详情,请参阅查找和探索跟踪记录

分析报告

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

确保数据安全

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

后续步骤