<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tracing basics on Grafana Labs</title><link>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/</link><description>Recent content in Tracing basics on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/learning-hub/intro-to-tracing/02-tracing-basics/index.xml" rel="self" type="application/rss+xml"/><item><title>What is a trace?</title><link>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/04-what-is-a-trace/</link><pubDate>Tue, 04 Aug 2026 18:58:09 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/04-what-is-a-trace/</guid><content><![CDATA[&lt;h2 id=&#34;what-is-a-trace&#34;&gt;What is a trace?&lt;/h2&gt;
&lt;p&gt;Following one request across every service it touches, and recording the timing and relationships at each step, is called &lt;strong&gt;distributed tracing&lt;/strong&gt;. The record it produces is a &lt;strong&gt;trace&lt;/strong&gt;: the whole journey of one request as it moves through all the services of a distributed system.&lt;/p&gt;
&lt;h2 id=&#34;one-request-one-trace&#34;&gt;One request, one trace&lt;/h2&gt;
&lt;p&gt;Take the slow checkout request from the last slide. As it travels its request path, tracing records each step:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A request arrives at the web service.&lt;/li&gt;
&lt;li&gt;The web service calls the cart service to read the basket.&lt;/li&gt;
&lt;li&gt;The cart service calls the payments service to charge the card.&lt;/li&gt;
&lt;li&gt;Finally, the payments service calls the inventory service to reserve stock.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these steps belong to the same request, so they&amp;rsquo;re stitched together into one trace. Every step in that trace shares one &lt;strong&gt;trace ID&lt;/strong&gt;, the identifier that marks them as part of the same request&amp;rsquo;s journey.&lt;/p&gt;
&lt;h2 id=&#34;why-it-helps&#34;&gt;Why it helps&lt;/h2&gt;
&lt;p&gt;A trace is the one view that follows the request across service boundaries. You see the full path in a single place, instead of piecing it together from separate services&amp;rsquo; logs.&lt;/p&gt;
]]></content><description>&lt;h2 id="what-is-a-trace">What is a trace?&lt;/h2>
&lt;p>Following one request across every service it touches, and recording the timing and relationships at each step, is called &lt;strong>distributed tracing&lt;/strong>. The record it produces is a &lt;strong>trace&lt;/strong>: the whole journey of one request as it moves through all the services of a distributed system.&lt;/p></description></item><item><title>What is a span?</title><link>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/05-what-is-a-span/</link><pubDate>Tue, 04 Aug 2026 18:58:09 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/05-what-is-a-span/</guid><content><![CDATA[&lt;h2 id=&#34;what-is-a-span&#34;&gt;What is a span?&lt;/h2&gt;
&lt;p&gt;Each step in that checkout trace is a &lt;strong&gt;span&lt;/strong&gt;: one unit of work, with an operation name that says what it did and a duration that says how long it took. The web service handling the request is a span. The call to the payments service is a span. A trace is made of one or more spans.&lt;/p&gt;
&lt;h2 id=&#34;spans-nest-into-a-tree&#34;&gt;Spans nest into a tree&lt;/h2&gt;
&lt;p&gt;Spans aren&amp;rsquo;t a flat list. When one operation triggers another, the second span becomes a child of the first, so the spans form a tree:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The web service span is the &lt;strong&gt;parent&lt;/strong&gt; of the cart span.&lt;/li&gt;
&lt;li&gt;The cart span is the parent of the payments span, and the payments span is the parent of the inventory span.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each call nests inside the one that triggered it. This parent/child nesting is what shows that the payments call happened &lt;em&gt;inside&lt;/em&gt; the web service&amp;rsquo;s handling of the request, not beside it.&lt;/p&gt;
&lt;h2 id=&#34;attributes-the-details-on-a-span&#34;&gt;Attributes: the details on a span&lt;/h2&gt;
&lt;p&gt;Each span also carries &lt;strong&gt;attributes&lt;/strong&gt;: key-value details about that step, for example the HTTP method or the status code returned. When you read a trace later, attributes are what tell you &lt;em&gt;what&lt;/em&gt; each span actually did.&lt;/p&gt;
&lt;p&gt;Read the checkout trace as a tree of spans: the web service, cart service, payments service, and inventory service, each nested inside the call that triggered it, with a duration bar and its attributes.&lt;/p&gt;

&lt;div class=&#34;learning-hub-image&#34;&gt;
  &lt;a href=&#34;span-tree.svg&#34; title=&#34;The checkout trace as a nested tree: web service, cart service, payments service, and inventory service spans, each with a duration bar nested inside its parent, and a status code attribute on the payments span&#34;&gt;
    &lt;img
      class=&#34;lazyload d-inline-block&#34;
      data-src=&#34;span-tree.svg&#34;
      alt=&#34;The checkout trace as a nested tree: web service, cart service, payments service, and inventory service spans, each with a duration bar nested inside its parent, and a status code attribute on the payments span&#34; width=&#34;800&#34; height=&#34;250&#34;/&gt;
    &lt;div class=&#34;learning-hub-image__zoom&#34;&gt;
      &lt;svg width=&#34;24&#34; height=&#34;24&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;
        &lt;path d=&#34;M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;/&gt;
        &lt;path d=&#34;M10 7V13M7 10H13&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34;/&gt;
      &lt;/svg&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;

]]></content><description>&lt;h2 id="what-is-a-span">What is a span?&lt;/h2>
&lt;p>Each step in that checkout trace is a &lt;strong>span&lt;/strong>: one unit of work, with an operation name that says what it did and a duration that says how long it took. The web service handling the request is a span. The call to the payments service is a span. A trace is made of one or more spans.&lt;/p></description></item><item><title>When to reach for a trace</title><link>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/06-where-tracing-fits/</link><pubDate>Tue, 04 Aug 2026 18:58:09 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/06-where-tracing-fits/</guid><content><![CDATA[&lt;h2 id=&#34;when-to-reach-for-a-trace&#34;&gt;When to reach for a trace&lt;/h2&gt;
&lt;p&gt;Understanding &lt;em&gt;why&lt;/em&gt; a system behaves the way it does by looking at the data it produces is called &lt;strong&gt;observability&lt;/strong&gt;. That data comes as four signals: metrics, logs, traces, and profiles. Monitoring tells you &lt;em&gt;when&lt;/em&gt; a known problem happens; observability helps you understand &lt;em&gt;why&lt;/em&gt;, including problems you didn&amp;rsquo;t predict. Tracing is one of the four signals.&lt;/p&gt;
&lt;h2 id=&#34;what-each-signal-answers&#34;&gt;What each signal answers&lt;/h2&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Signal&lt;/th&gt;
              &lt;th&gt;What it is&lt;/th&gt;
              &lt;th&gt;What it answers&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Metrics&lt;/td&gt;
              &lt;td&gt;Numeric measurements over time, for example error rate or latency&lt;/td&gt;
              &lt;td&gt;Is &lt;em&gt;something&lt;/em&gt; wrong?&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Logs&lt;/td&gt;
              &lt;td&gt;Timestamped records of events inside one service&lt;/td&gt;
              &lt;td&gt;What happened in &lt;em&gt;one place&lt;/em&gt;?&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Traces&lt;/td&gt;
              &lt;td&gt;The path of one request across services&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;Where&lt;/em&gt; did the time go across services?&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Profiles&lt;/td&gt;
              &lt;td&gt;Function-level CPU and memory data&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;Why&lt;/em&gt; is the code in a service slow?&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;!-- Visual intentionally omitted (Step 12): a four-signals SVG would only redraw the table above; the necessity gate fails. The official four-pillars/correlation diagram was reassigned to the correlation slide. --&gt;
&lt;h2 id=&#34;the-question-only-a-trace-answers&#34;&gt;The question only a trace answers&lt;/h2&gt;
&lt;p&gt;Reach for a trace when the question is &amp;ldquo;where did the time go across services?&amp;rdquo; That&amp;rsquo;s the service-to-service timing no other signal reconstructs. A metric tells you checkout is slow, a log tells you one service recorded an error, and a trace tells you &lt;em&gt;which hop&lt;/em&gt; in the checkout path lost the time.&lt;/p&gt;
]]></content><description>&lt;h2 id="when-to-reach-for-a-trace">When to reach for a trace&lt;/h2>
&lt;p>Understanding &lt;em>why&lt;/em> a system behaves the way it does by looking at the data it produces is called &lt;strong>observability&lt;/strong>. That data comes as four signals: metrics, logs, traces, and profiles. Monitoring tells you &lt;em>when&lt;/em> a known problem happens; observability helps you understand &lt;em>why&lt;/em>, including problems you didn&amp;rsquo;t predict. Tracing is one of the four signals.&lt;/p></description></item><item><title>Resources</title><link>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/07-resources/</link><pubDate>Tue, 04 Aug 2026 18:58:09 -0400</pubDate><guid>https://grafana.com/docs/learning-hub/intro-to-tracing/02-tracing-basics/07-resources/</guid><content><![CDATA[&lt;h2 id=&#34;resources&#34;&gt;Resources&lt;/h2&gt;
&lt;p&gt;This section covered what a trace is, how spans compose it, and where tracing fits among the signals. These docs go deeper on each idea.&lt;/p&gt;
&lt;h2 id=&#34;documentation&#34;&gt;Documentation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/docs/tempo/latest/introduction/&#34;&gt;Introduction to tracing&lt;/a&gt;: Revisit what traces and spans are.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/tempo/latest/introduction/trace-structure/&#34;&gt;Trace structure&lt;/a&gt;: A closer look at spans, parent and child nesting, and attributes.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/docs/tempo/latest/introduction/telemetry/&#34;&gt;Telemetry signals&lt;/a&gt;: How metrics, logs, traces, and profiles work together.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h2 id="resources">Resources&lt;/h2>
&lt;p>This section covered what a trace is, how spans compose it, and where tracing fits among the signals. These docs go deeper on each idea.&lt;/p></description></item></channel></rss>