<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Introduction on Grafana Labs</title><link>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/</link><description>Recent content in Introduction on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/enterprise-traces/v2.8.x/introduction/index.xml" rel="self" type="application/rss+xml"/><item><title>Trace structure</title><link>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/trace-structure/</link><pubDate>Tue, 10 Jun 2025 20:46:23 +0000</pubDate><guid>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/trace-structure/</guid><content><![CDATA[&lt;h1 id=&#34;trace-structure&#34;&gt;Trace structure&lt;/h1&gt;


&lt;div data-shared=&#34;trace-structure.md&#34;&gt;
            &lt;!--  Trace structure --&gt;
&lt;p&gt;Traces are telemetry data structured as trees.
Traces are made of spans (for example, a span tree); there is a root span that can have zero to multiple branches that are called child spans.
Each child span can itself be a parent span of one or multiple child spans, and so on so forth.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/tempo/traceql/trace-tree-structures-and-spans.png&#34;
  alt=&#34;Trace_and_spans_in_tree_structure&#34; width=&#34;1600&#34;
     height=&#34;706&#34;/&gt;&lt;/p&gt;
&lt;p&gt;In the specific context of Tempo and 
    &lt;a href=&#34;/docs/tempo/v2.8.x/traceql/&#34;&gt;TraceQL query language&lt;/a&gt;, a span has the following associated fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;name&lt;/strong&gt;: the span name&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;duration&lt;/strong&gt;: difference between the end time and start time of the span&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: enum: &lt;code&gt;{ok, error, unset}&lt;/code&gt;. For details, refer to &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-status&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTel span status&lt;/a&gt; documentation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;kind&lt;/strong&gt;: enum: &lt;code&gt;{server, client, producer, consumer, internal, unspecified}&lt;/code&gt;. For more details, refer to &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-kind&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OTel span kind&lt;/a&gt; documentation.&lt;/li&gt;
&lt;li&gt;Attributes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first four properties are &lt;em&gt;intrinsics&lt;/em&gt;.
They are fundamental to the span.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Attributes&lt;/em&gt; are custom span metadata in the form of key-value pairs.
There are four types of attributes: span attributes, resource attributes, event attributes, and link attributes.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Span attributes&lt;/em&gt; are key-value pairs that contain metadata that you can use to annotate a span to carry information about the operation it&amp;rsquo;s tracking.
For example, in an eCommerce application, if a span tracks an operation that adds an item to a user’s shopping cart, the user ID, added item ID and cart ID can be captured and attached to the span as span attributes.&lt;/p&gt;
&lt;p&gt;A &lt;em&gt;resource attribute&lt;/em&gt; represents information about an entity producing the span.
For example, a span created by a process running in a container deployed by Kubernetes could link a resource that specifies the cluster name, namespace, pod, and container name.
Resource attributes are resource-related metadata (key-value pairs) that are describing the Resource.&lt;/p&gt;
&lt;p&gt;An &lt;em&gt;event attribute&lt;/em&gt; represents a unique point in the time during the span&amp;rsquo;s duration. For more information, refer to &lt;a href=&#34;/blog/2024/08/15/all-about-span-events-what-they-are-and-how-to-query-them/#how-to-query-span-events-with-traceql&#34;&gt;All about span events&lt;/a&gt; and &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-events&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Span events&lt;/a&gt; in the OTEL documentation.&lt;/p&gt;
&lt;p&gt;A &lt;em&gt;link attribute&lt;/em&gt; lets you query link data in a span.
A span link associates one span with one or more other spans that are a causal relationship. For more information on span links, refer to the &lt;a href=&#34;https://opentelemetry.io/docs/concepts/signals/traces/#span-links&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Span Links&lt;/a&gt; documentation in the Open Telemetry project.&lt;/p&gt;
&lt;p&gt;The OpenTelemetry specification defines Semantic Attributes for Spans and for Resources.
Semantic Span Attributes are a set of naming schemes for attributes shared across languages, frameworks, and runtimes.
For more details, refer to &lt;a href=&#34;https://opentelemetry.io/docs/specs/semconv/general/trace/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Trace Semantic Conventions&lt;/a&gt; and &lt;a href=&#34;https://opentelemetry.io/docs/specs/semconv/resource/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Resource Semantic Conventions&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;

        
]]></content><description>&lt;h1 id="trace-structure">Trace structure&lt;/h1>
&lt;div data-shared="trace-structure.md">
&lt;!-- Trace structure -->
&lt;p>Traces are telemetry data structured as trees.
Traces are made of spans (for example, a span tree); there is a root span that can have zero to multiple branches that are called child spans.
Each child span can itself be a parent span of one or multiple child spans, and so on so forth.&lt;/p></description></item><item><title>Traces and telemetry</title><link>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/telemetry/</link><pubDate>Tue, 10 Jun 2025 20:46:23 +0000</pubDate><guid>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/telemetry/</guid><content><![CDATA[&lt;h1 id=&#34;traces-and-telemetry&#34;&gt;Traces and telemetry&lt;/h1&gt;
&lt;p&gt;Metrics, logs, traces, and profiles form the pillars of observability.
Correlating between the four pillars of observability helps create a holistic view of your application and infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/tempo/intro/four-pillars-observe.png.png&#34;
  alt=&#34;The four pillars of observability&#34; width=&#34;766&#34;
     height=&#34;491&#34;/&gt;&lt;/p&gt;
&lt;h2 id=&#34;metrics&#34;&gt;Metrics&lt;/h2&gt;
&lt;p&gt;Metrics provide a high level picture of the state of a system.
Metrics are the foundation of alerts because metrics are numeric values and can be compared against known thresholds.
Alerts constantly run in the background and trigger when a value is outside of an expected range.
This is typically the first sign that something is going on and are where discovery first starts.
Metrics indicate that something is happening.&lt;/p&gt;
&lt;h2 id=&#34;logs&#34;&gt;Logs&lt;/h2&gt;
&lt;p&gt;Logs provide an audit trail of activity from a single process that create informational context.
Logs act as atomic events, detailing what&amp;rsquo;s occurring in the services in your application.
Whereas metrics are quantitative (numeric) and structured, logs are qualitative (textual) and unstructured or semi-structured.
They offer a higher degree of detail, but also at the expense of creating significantly higher data volumes.
Logs let you know what&amp;rsquo;s happening to your application.&lt;/p&gt;
&lt;h2 id=&#34;traces&#34;&gt;Traces&lt;/h2&gt;
&lt;p&gt;Traces add further to the observability picture by telling you what happens at each step or action in a data pathway. Traces provide the map—the where—something is going wrong.
A trace provides a graphic representation of how long each step in the data flow pathway takes to complete. For example, how long a HTTP request, a database lookup, or a call to a third party service takes.
It can show where requests initiate and finish, as well as how your system responds.
This data helps you locate problem areas and assess their impact, often in places you never would have anticipated or found without this ability to trace the request flow.&lt;/p&gt;
&lt;h2 id=&#34;profiles&#34;&gt;Profiles&lt;/h2&gt;
&lt;p&gt;Profiles help you understand how your applications utilize compute resources such as CPU time and memory.
This helps identify specific lines of code or functions to optimize and improve performance and efficiency.&lt;/p&gt;
&lt;h2 id=&#34;why-traces&#34;&gt;Why traces?&lt;/h2&gt;
&lt;p&gt;Metrics in themselves aren&amp;rsquo;t sufficient to find the root cause and solve complex issues.
The same can be said for logs, which can contain a significant amount of information but lack the context of the interactions and dependencies between the different components of your complex environment.
Each pillar of observability—metrics, logs, traces, profiles—has its own unique strength when it comes to root causing issues.
To get the most value of your observability strategy, you need to be able to correlate them.&lt;/p&gt;
&lt;p&gt;Traces have the unique ability to show relationships between services.
They help identify which services are upstream from your service, which is helpful when you want to understand which services might be negatively impacted by problems in your service.
Traces also help identify which services are downstream from your service.
This is valuable since your application relies on their downstream services, and problems with those services may be the cause of elevated errors or latency reported by your service.
For example, you can directly see the failing database and all impacted failing edge endpoints.&lt;/p&gt;
&lt;p&gt;Using traces and &lt;a href=&#34;/docs/grafana/next/fundamentals/exemplars/&#34;&gt;exemplars&lt;/a&gt;, you can go from a metric data point and get to an associated trace.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/tempo/intro/exemplar-metric-totrace.png&#34;
  alt=&#34;Use exemplars to go from a metric data point to a trace&#34; width=&#34;1917&#34;
     height=&#34;812&#34;/&gt;&lt;/p&gt;
&lt;p&gt;Or from traces to logs:&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/tempo/intro/tempo-logs-to-traces.png&#34;
  alt=&#34;Use traces to go to a log entry&#34; width=&#34;1031&#34;
     height=&#34;544&#34;/&gt;&lt;/p&gt;
&lt;p&gt;And vice versa, from logs to traces.&lt;/p&gt;
&lt;p&gt;&lt;img
  class=&#34;lazyload d-inline-block&#34;
  data-src=&#34;/media/docs/tempo/intro/loki-trace-to-logspng.png&#34;
  alt=&#34;Use logs to go to a span&#34; width=&#34;1038&#34;
     height=&#34;762&#34;/&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="traces-and-telemetry">Traces and telemetry&lt;/h1>
&lt;p>Metrics, logs, traces, and profiles form the pillars of observability.
Correlating between the four pillars of observability helps create a holistic view of your application and infrastructure.&lt;/p></description></item><item><title>Use traces to find solutions</title><link>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/solutions-with-traces/</link><pubDate>Tue, 10 Jun 2025 20:46:23 +0000</pubDate><guid>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/solutions-with-traces/</guid><content><![CDATA[&lt;h1 id=&#34;use-traces-to-find-solutions&#34;&gt;Use traces to find solutions&lt;/h1&gt;
&lt;p&gt;Tracing is best used for analyzing the performance of your system, identifying bottlenecks, monitoring latency, and providing a complete picture of requests processing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Decrease mean time to repair and mean time to identify an issue by pinpointing exactly where errors or latency are occurring within a transaction across multiple services.&lt;/li&gt;
&lt;li&gt;Optimize bottlenecks and long-running code by visualizing the path and duration of requests. Tracing can help identify bottleneck operations and long-running pieces of code that could benefit from optimization.&lt;/li&gt;
&lt;li&gt;Detect issues with generated metrics. Tracing generates metrics related to request rate, error rate, and duration of requests. You can set alerts against these high-level signals to detect problems.&lt;/li&gt;
&lt;li&gt;Seamless telemetry correlation. Use tracing in conjunction with logs and metrics for a comprehensive view of events over time, during an active incident, or for root-cause analysis. Tracing shows relationships between services and dependencies.&lt;/li&gt;
&lt;li&gt;Monitor compliance with policies. Business policy adherence ensures that services are correctly isolated using generated metrics and generated service graphs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each use case provides real-world examples, including the background of the use case and how tracing highlighted and helped resolve any issues.&lt;/p&gt;
]]></content><description>&lt;h1 id="use-traces-to-find-solutions">Use traces to find solutions&lt;/h1>
&lt;p>Tracing is best used for analyzing the performance of your system, identifying bottlenecks, monitoring latency, and providing a complete picture of requests processing.&lt;/p></description></item><item><title>Glossary</title><link>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/glossary/</link><pubDate>Tue, 10 Jun 2025 20:46:23 +0000</pubDate><guid>https://grafana.com/docs/enterprise-traces/v2.8.x/introduction/glossary/</guid><content><![CDATA[&lt;h1 id=&#34;glossary&#34;&gt;Glossary&lt;/h1&gt;
&lt;p&gt;The following terms are often used when discussing traces.&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Active series&lt;/dt&gt;
&lt;dd&gt;A time series that receives new data points or samples.&lt;/dd&gt;
&lt;dt&gt;Cardinality&lt;/dt&gt;
&lt;dd&gt;The total combination of key/value pairs, such as labels and label values for a given metric series or log stream, and how many unique combinations they generate.&lt;/dd&gt;
&lt;dt&gt;Data source&lt;/dt&gt;
&lt;dd&gt;A basic storage for data such as a database, a flat file, or even live references or measurements from a device.
A file, database, or service that provides data. For example, trace data is imported into Grafana by configuring and enabling a Tempo data source.&lt;/dd&gt;
&lt;dt&gt;Exemplar&lt;/dt&gt;
&lt;dd&gt;Any data that serves as a detailed example of one of the observations aggregated into a metric.
An exemplar contains the observed value together with an optional timestamp and arbitrary trace IDs, which are typically used to reference a trace.&lt;/dd&gt;
&lt;dt&gt;Log&lt;/dt&gt;
&lt;dd&gt;Chronological events, usually text-based, allowing for the diagnosis of problems.
Logs can provide informational context, such as detailed records of all events during user interactions, for example, when events happen, who used the system, status messages, etc.&lt;/dd&gt;
&lt;dt&gt;Metric&lt;/dt&gt;
&lt;dd&gt;A number that helps an operator understand the state of a system, such as the number of active users, error count, average response time, and more.&lt;/dd&gt;
&lt;dt&gt;Span&lt;/dt&gt;
&lt;dd&gt;A unit of work done within a trace.&lt;/dd&gt;
&lt;dt&gt;Trace&lt;/dt&gt;
&lt;dd&gt;A trace represents the whole journey of a request or an action as it moves through all the nodes of a distributed system, especially containerized applications or microservices architectures. Traces are composed of spans. For more information, refer to &lt;a href=&#34;https://opentracing.io/docs/overview/what-is-tracing/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;What is Distributed Tracing?&lt;/a&gt;.&lt;/dd&gt;
&lt;/dl&gt;
]]></content><description>&lt;h1 id="glossary">Glossary&lt;/h1>
&lt;p>The following terms are often used when discussing traces.&lt;/p>
&lt;dl>
&lt;dt>Active series&lt;/dt>
&lt;dd>A time series that receives new data points or samples.&lt;/dd>
&lt;dt>Cardinality&lt;/dt>
&lt;dd>The total combination of key/value pairs, such as labels and label values for a given metric series or log stream, and how many unique combinations they generate.&lt;/dd>
&lt;dt>Data source&lt;/dt>
&lt;dd>A basic storage for data such as a database, a flat file, or even live references or measurements from a device.
A file, database, or service that provides data. For example, trace data is imported into Grafana by configuring and enabling a Tempo data source.&lt;/dd>
&lt;dt>Exemplar&lt;/dt>
&lt;dd>Any data that serves as a detailed example of one of the observations aggregated into a metric.
An exemplar contains the observed value together with an optional timestamp and arbitrary trace IDs, which are typically used to reference a trace.&lt;/dd>
&lt;dt>Log&lt;/dt>
&lt;dd>Chronological events, usually text-based, allowing for the diagnosis of problems.
Logs can provide informational context, such as detailed records of all events during user interactions, for example, when events happen, who used the system, status messages, etc.&lt;/dd>
&lt;dt>Metric&lt;/dt>
&lt;dd>A number that helps an operator understand the state of a system, such as the number of active users, error count, average response time, and more.&lt;/dd>
&lt;dt>Span&lt;/dt>
&lt;dd>A unit of work done within a trace.&lt;/dd>
&lt;dt>Trace&lt;/dt>
&lt;dd>A trace represents the whole journey of a request or an action as it moves through all the nodes of a distributed system, especially containerized applications or microservices architectures. Traces are composed of spans. For more information, refer to &lt;a href="https://opentracing.io/docs/overview/what-is-tracing/" target="_blank" rel="noopener noreferrer">What is Distributed Tracing?&lt;/a>.&lt;/dd>
&lt;/dl></description></item></channel></rss>