From c3b90406b21cbb3af245cadf25bd49308b84a6d9 Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Mon, 30 Sep 2024 14:56:31 -0700 Subject: [PATCH 1/9] add new tracing docs page --- docs/product/tracing/index.mdx | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/product/tracing/index.mdx diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx new file mode 100644 index 00000000000000..2bd9eb0c2c9dca --- /dev/null +++ b/docs/product/tracing/index.mdx @@ -0,0 +1,34 @@ +--- +title: Tracing +sidebar_order: 2 +description: "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." +--- + +## What's Tracing? + +User interactions like page loads or button clicks rely on a series of requests and operations across both the frontend and the backend. If something goes wrong, it can be hard to find out which link in the chain of actions is causing the problem. This is where tracing comes in. + +Tracing is a powerful debugging tool that allows you to track the flow and timing of requests and operations as they happen throughout your entire system. While tracing can be useful if instrumented in just the frontend or backend, it's most powerful when set up for your full stack (distributed tracing), especially if you use microservices. + +With distributed tracing, you can identify performance bottlenecks that are affecting your application. You can then use the Sentry Trace Explorer and Trace View to dig deeper to find the root cause. 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. + +## Traces, Spans and Transactions + +You'll see references to traces, spans, and transactions in Sentry, so it's helpful to have a working definition of what they are. + +### Transactions + +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. + +### Traces + +Traces are also a way to identify events that require one or more services in an environment. 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. + +This makes it possible to see (and eventually debug) an entire chain of events from frontend to backend. Every event sent to Sentry (Errors, Spans, Replays, Profiles, and so on) will have a unique trace ID. + +### Spans + +Spans are the telemetry that help record a specific request as it traverses through various services or components in a distributed system, providing a comprehensive view of its path, timing, and interactions for troubleshooting and performance analysis. + +### Distributed Tracing +Distributed tracing enables you to trace and visualize interactions between multiple instrumented services. For example, your users may interact with a front-end API service, which talks to two internal APIs to fulfill their request. In order to have traces connect spans for all these services, it is necessary to propagate trace context between these services, usually by using an HTTP header. From 308aa2115aeeb1b0b4829f0a5630a3dbf21390e6 Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Mon, 7 Oct 2024 09:19:16 -0700 Subject: [PATCH 2/9] Update docs/product/tracing/index.mdx --- docs/product/tracing/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index 2bd9eb0c2c9dca..1d467955e1c56b 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -1,6 +1,6 @@ --- title: Tracing -sidebar_order: 2 +sidebar_order: 20 description: "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." --- From 3aea3063e0599025227b24919ce5e8883846f10d Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Tue, 8 Oct 2024 11:42:41 -0700 Subject: [PATCH 3/9] update docs --- docs/product/tracing/index.mdx | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index 1d467955e1c56b..e6b852b75d6893 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -1,34 +1,34 @@ --- title: Tracing sidebar_order: 20 -description: "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." +description: "Learn about using tracing and distributed tracing for observing and debugging application performance issues." --- ## What's Tracing? -User interactions like page loads or button clicks rely on a series of requests and operations across both the frontend and the backend. If something goes wrong, it can be hard to find out which link in the chain of actions is causing the problem. This is where tracing comes in. +Tracing is the process of tracking the flow and timing of requests and operations as they happen throughout your entire application. Each trace has a unique identifier that's shared between backend, frontend, and other services, connecting them. This makes it possible to look at a trace and see an entire chain of events that may have lead to an error or other issue. This helps you understand the impact of errors across your full stack and microservices. -Tracing is a powerful debugging tool that allows you to track the flow and timing of requests and operations as they happen throughout your entire system. While tracing can be useful if instrumented in just the frontend or backend, it's most powerful when set up for your full stack (distributed tracing), especially if you use microservices. +### What's Distributed Tracing? -With distributed tracing, you can identify performance bottlenecks that are affecting your application. You can then use the Sentry Trace Explorer and Trace View to dig deeper to find the root cause. 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. +Distributed tracing enables you to trace and visualize interactions between multiple instrumented services, allowing you to identify performance bottlenecks that are affecting your application no matter where they're coming from. You can then use the Sentry Trace Explorer and Trace View to dig deeper to find the root cause. 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. -## Traces, Spans and Transactions +While Sentry tracing can be useful if instrumented in just the frontend or the backend, it's most powerful when set up for your full stack (distributed tracing). This is especially true if you use microservices. Even if you mostly work on the frontend, frontend problems often require backend fixes, and setting up Sentry for your backend can help you find the root cause of a problem faster. Distributed tracing also helps you understand how different parts of the system interact. -You'll see references to traces, spans, and transactions in Sentry, so it's helpful to have a working definition of what they are. +Distributed tracing can help with: -### Transactions - -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. +- Identifying performance bottlenecks by finding the root cause of slow requests +- Debugging frontend and backend problems +- Understanding how different parts of the system interact +- Highlighting operations or endpoints that consume the most time ### Traces -Traces are also a way to identify events that require one or more services in an environment. 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. - -This makes it possible to see (and eventually debug) an entire chain of events from frontend to backend. Every event sent to Sentry (Errors, Spans, Replays, Profiles, and so on) will have a unique trace ID. +A trace is a unique identifier that tracks a complete operation across multiple services. Every event sent to Sentry (Errors, Spans, Replays, Profiles, and so on)will have a trace id linking frontend and backend events together. ### Spans -Spans are the telemetry that help record a specific request as it traverses through various services or components in a distributed system, providing a comprehensive view of its path, timing, and interactions for troubleshooting and performance analysis. + A span is a single unit of work or operation within a trace. It represents a specific task, like an API call, a database query, or a rendering process. Spans include details like start and end times, helping measure the duration of each task and identify bottlenecks or failures. In distributed tracing, spans are connected to show how tasks across different services interact. -### Distributed Tracing -Distributed tracing enables you to trace and visualize interactions between multiple instrumented services. For example, your users may interact with a front-end API service, which talks to two internal APIs to fulfill their request. In order to have traces connect spans for all these services, it is necessary to propagate trace context between these services, usually by using an HTTP header. +### Transactions + +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. From c9bec228a467a940b00475f92e2d30dfc86055c5 Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Thu, 10 Oct 2024 15:05:49 -0700 Subject: [PATCH 4/9] Update docs/product/tracing/index.mdx --- docs/product/tracing/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index e6b852b75d6893..c034dbca3fa546 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -1,7 +1,7 @@ --- title: Tracing sidebar_order: 20 -description: "Learn about using tracing and distributed tracing for observing and debugging application performance issues." +description: "Learn about tracing and distributed tracing and how it can be used to not just observe, but also debug application performance issues." --- ## What's Tracing? From d5c25d5bb557e7cb72d0750d1ed6014f1d789f6c Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Thu, 10 Oct 2024 15:05:55 -0700 Subject: [PATCH 5/9] Update docs/product/tracing/index.mdx --- docs/product/tracing/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index c034dbca3fa546..656f876088018f 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -10,7 +10,7 @@ Tracing is the process of tracking the flow and timing of requests and operation ### What's Distributed Tracing? -Distributed tracing enables you to trace and visualize interactions between multiple instrumented services, allowing you to identify performance bottlenecks that are affecting your application no matter where they're coming from. You can then use the Sentry Trace Explorer and Trace View to dig deeper to find the root cause. 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. +Distributed tracing enables you to trace and visualize interactions between multiple instrumented services, allowing you to identify performance bottlenecks that are affecting your application no matter where (frontend, backend, other) they're coming from. You can then use the Sentry [Trace Explorer](/product/explore/traces/) and [Trace View](/concepts/key-terms/tracing/trace-view/) to dig deeper to find the root cause. Distributed tracing is particularly helpful for identifying problems you can't just debug using console logs, such as race conditions, [N+1](/product/issues/issue-details/performance-issues/n-one-queries/), and [caching issues](product/insights/caches/). While Sentry tracing can be useful if instrumented in just the frontend or the backend, it's most powerful when set up for your full stack (distributed tracing). This is especially true if you use microservices. Even if you mostly work on the frontend, frontend problems often require backend fixes, and setting up Sentry for your backend can help you find the root cause of a problem faster. Distributed tracing also helps you understand how different parts of the system interact. From 3639d324923cfbfb0aab8f501461841f95e1a138 Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Thu, 10 Oct 2024 15:06:03 -0700 Subject: [PATCH 6/9] Update docs/product/tracing/index.mdx --- docs/product/tracing/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index 656f876088018f..facd22455808c0 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -14,7 +14,7 @@ Distributed tracing enables you to trace and visualize interactions between mult While Sentry tracing can be useful if instrumented in just the frontend or the backend, it's most powerful when set up for your full stack (distributed tracing). This is especially true if you use microservices. Even if you mostly work on the frontend, frontend problems often require backend fixes, and setting up Sentry for your backend can help you find the root cause of a problem faster. Distributed tracing also helps you understand how different parts of the system interact. -Distributed tracing can help with: +**Distributed tracing can help with:** - Identifying performance bottlenecks by finding the root cause of slow requests - Debugging frontend and backend problems From 493e6a1a224c0b4046bf5aa90290f147ad30229a Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Thu, 10 Oct 2024 15:06:09 -0700 Subject: [PATCH 7/9] Update docs/product/tracing/index.mdx --- docs/product/tracing/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index facd22455808c0..3102e560e518a3 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -23,7 +23,7 @@ While Sentry tracing can be useful if instrumented in just the frontend or the b ### Traces -A trace is a unique identifier that tracks a complete operation across multiple services. Every event sent to Sentry (Errors, Spans, Replays, Profiles, and so on)will have a trace id linking frontend and backend events together. +A trace is a unique identifier that tracks a complete operation across multiple services. Every event sent to Sentry (Errors, Spans, Replays, Profiles, and so on) will have a trace id linking frontend and backend events together. ### Spans From 9759fb1af7f56ce8a3062f88df31d538c8740fd9 Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Thu, 10 Oct 2024 15:43:22 -0700 Subject: [PATCH 8/9] Update docs/product/tracing/index.mdx --- docs/product/tracing/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index 3102e560e518a3..4cc06cb1531e8b 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -10,7 +10,7 @@ Tracing is the process of tracking the flow and timing of requests and operation ### What's Distributed Tracing? -Distributed tracing enables you to trace and visualize interactions between multiple instrumented services, allowing you to identify performance bottlenecks that are affecting your application no matter where (frontend, backend, other) they're coming from. You can then use the Sentry [Trace Explorer](/product/explore/traces/) and [Trace View](/concepts/key-terms/tracing/trace-view/) to dig deeper to find the root cause. Distributed tracing is particularly helpful for identifying problems you can't just debug using console logs, such as race conditions, [N+1](/product/issues/issue-details/performance-issues/n-one-queries/), and [caching issues](product/insights/caches/). +Distributed tracing enables you to trace and visualize interactions between multiple instrumented services, allowing you to identify performance bottlenecks that are affecting your application no matter where (frontend, backend, other) they're coming from. You can then use the Sentry [Trace Explorer](/product/explore/traces/) and [Trace View](/concepts/key-terms/tracing/trace-view/) to dig deeper to find the root cause. Distributed tracing is particularly helpful for identifying problems you can't just debug using console logs, such as race conditions, [N+1](/product/issues/issue-details/performance-issues/n-one-queries/), and [caching issues](/product/insights/caches/). While Sentry tracing can be useful if instrumented in just the frontend or the backend, it's most powerful when set up for your full stack (distributed tracing). This is especially true if you use microservices. Even if you mostly work on the frontend, frontend problems often require backend fixes, and setting up Sentry for your backend can help you find the root cause of a problem faster. Distributed tracing also helps you understand how different parts of the system interact. From 03141e7644b8e87e4172e7f2e1a4f0f6d3c7f1a7 Mon Sep 17 00:00:00 2001 From: Liza Mock Date: Tue, 15 Oct 2024 08:51:17 -0700 Subject: [PATCH 9/9] Update docs/product/tracing/index.mdx --- docs/product/tracing/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/product/tracing/index.mdx b/docs/product/tracing/index.mdx index 4cc06cb1531e8b..7bcfd5dfd7ac73 100644 --- a/docs/product/tracing/index.mdx +++ b/docs/product/tracing/index.mdx @@ -1,7 +1,7 @@ --- title: Tracing sidebar_order: 20 -description: "Learn about tracing and distributed tracing and how it can be used to not just observe, but also debug application performance issues." +description: "Learn about tracing and distributed tracing and how it can be a powerful tool for not just observing, but also debugging application performance issues." --- ## What's Tracing?