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 Run 函数和 Cloud Run

    对于传入和传出的 HTTP 请求,系统会自动使用延迟数据 发送到 Cloud Trace

语言支持

下表总结了 Trace 的可用性 客户端库和 OpenTelemetry 具有导出到 Cloud Trace 的库。

语言 客户端
的可用性
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 库适用于您的编程 语言,您可以简化创建 使用 kubectl 命令 OpenTelemetry。 除了更易于使用之外,OpenTelemetry 实现批处理,这可能会提高性能。

如果 OpenTelemetry 库不存在,则通过以下方式插桩您的代码: 导入 Trace SDK 库并使用 Cloud Trace API。 Cloud Trace API 会将跟踪记录数据发送到您的 Google Cloud 项目。

跟踪界面

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

通过轨迹浏览器页面,您可查看每条轨迹的详情。默认情况下,此视图会显示一个包含所有跟踪记录的延迟时间的图表,并会在一个表中列出最近的跟踪记录。您可以选择一个轨迹来查看更详细的信息,例如轨迹中的跨度、每个跨度和整个轨迹的延迟时间信息,以及指向日志和事件的链接。有关过滤和查看的信息 跟踪记录详情,请参阅查找和探索跟踪记录

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

数据安全

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

价格和使用

后续步骤