Tracing

Learn about using tracing and distributed tracing for observing and debugging application performance issues. You'll see the impact of errors across your full stack and microservices.

Tracing is the process of capturing the timing and flow of requests and operations as they happen throughout your application. It can be a powerful debugging tool, helping you identify which link in a sequence of events is causing a problem.

Distributed tracing provides a unified view of how a single request moves from the frontend to the backend and beyond. This is particularly useful in modern applications, which are often composed of multiple services working together. To get a distributed view of your application, instrument Sentry in both your frontend and your backend.

With distributed tracing, you can identify performance bottlenecks that are affecting your application no matter where in your application's workflowthey occur. You can then use Sentry tools such as the Trace Explorer or Trace View page to dig deeper and find the root cause of the problem. Distributed tracing is particularly helpful for identifying problems you can't just debug using console logs, such as race conditions, N+1, and caching issues.

Each trace has a string of globally unique characters called a trace ID, that's shared by both frontend and backend services they help connect all the actions that take place to make an event such as a button click or a page scroll. Each trace is composed of multiple spans.

A span is a named, timed operation that represents a part of the application workflow. It provides granular insights into specific tasks, like API requests or database queries. Multiple spans are pieced together to create a trace. providing a comprehensive view of its path, timing, and interactions for troubleshooting and performance analysis.

Transactions are a Sentry-specific unit of measurement that references any event that users send to Sentry. In addition to standard event fields, transactions also contains child spans and have a unique transaction ID.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").