追踪传播

了解如何在应用程序/服务之间连接事件。

如果您想用 Sentry 观察的整体应用程序环境不仅仅包含单个服务或应用程序,分布式追踪可以增加很多价值。

在跨分布式系统追踪事件的背景下,分布式追踪充当强大的调试工具。想象一下,您的应用程序是一个由许多互连部分组成的庞大网络。例如,您的系统可能分布在不同的服务器上,或者您的应用程序可能分为不同的后端和前端服务,每个服务可能都有自己的技术栈。

当发生错误或性能问题时,由于系统的复杂性,确定根本原因可能会非常困难。分布式追踪可以帮助您跟踪事件在其通过这个复杂网络的过程中所经过的路径,记录每一步。通过检查这些追踪,您可以重建导致感兴趣事件的事件序列,识别涉及的具体组件,并理解它们之间的交互。这种详细的可见性使您能够更有效地诊断和解决问题,最终提高分布式系统的可靠性和性能。

以下是一个在 Sentry 中显示的分布式追踪示例:

A full distributed trace in Sentry

此分布式追踪显示了一个 Vue 应用的 pageload 请求发送到 Python 后端,然后 Python 后端调用了 Ruby 微服务的 /api 端点。

在后台发生的情况是,Sentry 在您的应用程序之间读取并进一步传播两个 HTTP 头:

  • sentry-trace
  • baggage

如果您在分布式系统中运行任何 JavaScript 应用程序,请确保这两个头被添加到您的 CORS 允许列表中,并且不会被您的代理服务器、网关或防火墙阻止或剥离。

In order to use distributed tracing with the PHP SDK, follow the custom instrumentation steps.

请记住,为了在整个分布式系统中传播追踪信息,您必须在所有涉及的服务和应用程序中使用 Sentry。查看相应的 SDK 文档,了解如何为每个平台启用分布式追踪。