<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Get started with Grafana Tempo on Grafana Labs</title><link>https://grafana.com/docs/tempo/v2.2.x/getting-started/</link><description>Recent content in Get started with Grafana Tempo on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/tempo/v2.2.x/getting-started/index.xml" rel="self" type="application/rss+xml"/><item><title>Instrument for distributed tracing</title><link>https://grafana.com/docs/tempo/v2.2.x/getting-started/instrumentation/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/tempo/v2.2.x/getting-started/instrumentation/</guid><content><![CDATA[&lt;h1 id=&#34;instrument-for-distributed-tracing&#34;&gt;Instrument for distributed tracing&lt;/h1&gt;
&lt;p&gt;Client instrumentation is the first building block to a functioning distributed tracing visualization pipeline.
Client instrumentation is the process of adding instrumentation points in the application that create and offload spans.&lt;/p&gt;
&lt;p&gt;Check out these resources for help instrumenting tracing with your favorite languages.
Most of these guides include complete end-to-end examples with Grafana, Loki, and Tempo.&lt;/p&gt;
&lt;h3 id=&#34;instrumentation-frameworks&#34;&gt;Instrumentation frameworks&lt;/h3&gt;
&lt;p&gt;Most of the popular client instrumentation frameworks
have SDKs in the most commonly used programming languages.
You should pick one according to your application needs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jaegertracing.io/docs/latest/client-libraries/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTracing/Jaeger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zipkin.io/pages/tracers_instrumentation&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Zipkin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://opentelemetry.io/docs/concepts/instrumenting/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;opentelemetry-auto-instrumentation&#34;&gt;OpenTelemetry auto-instrumentation&lt;/h3&gt;
&lt;p&gt;Some languages have support for auto-instrumentation. These libraries capture telemetry
information from a client application with minimal manual instrumentation of the codebase.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-java-instrumentation&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Java auto-instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry .NET auto-instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-python-contrib&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Python auto-instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;opentelemetry&#34;&gt;OpenTelemetry&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://opentelemetry.io/docs/instrumentation/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenTelemetry Language Specific Instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;jaeger&#34;&gt;Jaeger&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.jaegertracing.io/docs/latest/client-libraries/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Jaeger Language Specific Instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;zipkin&#34;&gt;Zipkin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zipkin.io/pages/tracers_instrumentation.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Zipkin Language Specific Instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;grafana-blog&#34;&gt;Grafana Blog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;/blog/2021/02/03/auto-instrumenting-a-java-spring-boot-application-for-traces-and-logs-using-opentelemetry-and-grafana-tempo/&#34;&gt;Java Spring Boot Auto-Instrumentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/blog/2020/11/09/trace-discovery-in-grafana-tempo-using-prometheus-exemplars-loki-2.0-queries-and-more/&#34;&gt;Go &#43; OpenMetrics Exemplars&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/blog/2021/02/11/instrumenting-a-.net-web-api-using-opentelemetry-tempo-and-grafana-cloud/&#34;&gt;.NET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;/blog/2021/05/04/get-started-with-distributed-tracing-and-grafana-tempo-using-foobar-a-demo-written-in-python/&#34;&gt;Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;community-resources&#34;&gt;Community Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/mnadeem/nodejs-opentelemetry-tempo&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;NodeJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/mnadeem/boot-opentelemetry-tempo&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Java Spring Boot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/dgzlopes/foobar-demo&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="instrument-for-distributed-tracing">Instrument for distributed tracing&lt;/h1>
&lt;p>Client instrumentation is the first building block to a functioning distributed tracing visualization pipeline.
Client instrumentation is the process of adding instrumentation points in the application that create and offload spans.&lt;/p></description></item><item><title>Example setups</title><link>https://grafana.com/docs/tempo/v2.2.x/getting-started/example-demo-app/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/tempo/v2.2.x/getting-started/example-demo-app/</guid><content><![CDATA[&lt;h1 id=&#34;example-setups&#34;&gt;Example setups&lt;/h1&gt;
&lt;p&gt;The following examples show various deployment and configuration options using trace generators so you can get started experimenting with Tempo without an existing application.&lt;/p&gt;
&lt;p&gt;For more information about Tempo setup and configuration, see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../setup/&#34;&gt;Set up Tempo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../configuration/&#34;&gt;Tempo configuration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are interested in instrumentation, see &lt;a href=&#34;../instrumentation/&#34;&gt;Tempo instrumentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;docker-compose&#34;&gt;Docker Compose&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/grafana/tempo/tree/main/example/docker-compose&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;docker-compose examples&lt;/a&gt; are simpler and designed to show minimal configuration.&lt;/p&gt;
&lt;p&gt;Some of the examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trace discovery with Loki&lt;/li&gt;
&lt;li&gt;Basic Grafana Agent/OpenTelemetry Setup&lt;/li&gt;
&lt;li&gt;Various Backends (S3/GCS/Azure)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../docker-example/&#34;&gt;K6 with Traces&lt;/a&gt;
This is a great place to get started with Tempo and learn about various trace discovery flows.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;helm&#34;&gt;Helm&lt;/h2&gt;
&lt;p&gt;The Helm &lt;a href=&#34;https://github.com/grafana/tempo/tree/main/example/helm&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;example&lt;/a&gt; shows a complete microservice based deployment.
There are monolithic mode and microservices examples.&lt;/p&gt;
&lt;p&gt;To install Tempo on Kubernetes, use the &lt;a href=&#34;/docs/helm-charts/tempo-distributed/next/&#34;&gt;Deploy on Kubernetes using Helm&lt;/a&gt; procedure.&lt;/p&gt;
&lt;h2 id=&#34;tanka&#34;&gt;Tanka&lt;/h2&gt;
&lt;p&gt;To view an example of a complete microservice-based deployment, this &lt;a href=&#34;https://github.com/grafana/tempo/tree/main/example/tk&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Jsonnet based example&lt;/a&gt; shows a complete microservice based deployment.
There are monolithic mode and microservices examples.&lt;/p&gt;
&lt;p&gt;To learn how to set up a Tempo cluster, see &lt;a href=&#34;../../setup/tanka/&#34;&gt;Deploy on Kubernetes with Tanka&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;introduction-to-metrics-logs-and-traces-example&#34;&gt;Introduction to Metrics, Logs and Traces example&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/grafana/intro-to-mlt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Introduction to Metrics, Logs and Traces in Grafana&lt;/a&gt; provides a self-contained environment for learning about Mimir, Loki, Tempo, and Grafana. It includes detailed explanations of each compononent, annotated configurations for each component.&lt;/p&gt;
&lt;p&gt;The README.md file has full details on how to quickly download and &lt;a href=&#34;https://github.com/grafana/intro-to-mlt#running-the-demonstration-environment&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;start the environment&lt;/a&gt;. Additionally, you can use the &lt;a href=&#34;https://github.com/grafana/intro-to-mlt#grafana-cloud&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;ctl.sh&lt;/code&gt;&lt;/a&gt; script to alter the environment to send metrics, logs, and traces to Grafana Cloud.&lt;/p&gt;
]]></content><description>&lt;h1 id="example-setups">Example setups&lt;/h1>
&lt;p>The following examples show various deployment and configuration options using trace generators so you can get started experimenting with Tempo without an existing application.&lt;/p></description></item><item><title>Tempo in Grafana</title><link>https://grafana.com/docs/tempo/v2.2.x/getting-started/tempo-in-grafana/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/tempo/v2.2.x/getting-started/tempo-in-grafana/</guid><content><![CDATA[&lt;h1 id=&#34;tempo-in-grafana&#34;&gt;Tempo in Grafana&lt;/h1&gt;
&lt;p&gt;Grafana has a built-in Tempo data source that can be used to query Tempo and visualize traces.
This page describes the high-level features and their availability.
Use the latest versions for best compatibility and stability.&lt;/p&gt;
&lt;h2 id=&#34;use-traceql-to-dig-deep-into-trace-data&#34;&gt;Use TraceQL to dig deep into trace data&lt;/h2&gt;
&lt;p&gt;Inspired by PromQL and LogQL, TraceQL is a query language designed for selecting traces in Tempo.&lt;/p&gt;
&lt;p&gt;The default Tempo search reviews the whole trace. TraceQL provides a method for formulating precise queries so you can quickly identify the traces and spans that you need. Query results are returned faster because the queries limit what is searched.&lt;/p&gt;
&lt;p&gt;You can run a TraceQL query either by issuing it to Tempo’s &lt;code&gt;q&lt;/code&gt; parameter of the &lt;a href=&#34;../../api_docs/#search&#34;&gt;&lt;code&gt;search&lt;/code&gt; API endpoint&lt;/a&gt;, or, for those using Tempo in conjunction with Grafana, by using Grafana’s &lt;a href=&#34;../../traceql/query-editor/&#34;&gt;TraceQL query editor&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For details about how queries are constructed, read the &lt;a href=&#34;../../traceql/&#34;&gt;TraceQL documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;../../traceql/assets/query-editor-results-span.png&#34; alt=&#34;Query editor showing span results&#34; /&gt;&lt;/p&gt;
&lt;h2 id=&#34;view-trace-by-id&#34;&gt;View trace by ID&lt;/h2&gt;
&lt;p&gt;The most basic functionality is to visualize a trace using its ID.  Select the Trace ID tab and enter the ID to view it. This functionality is enabled by default and is available in all versions of Grafana.&lt;/p&gt;
&lt;h2 id=&#34;log-search&#34;&gt;Log search&lt;/h2&gt;
&lt;p&gt;Traces can be discovered by searching logs for entries containing trace IDs.  This is most useful when your application also logs relevant information about the trace that can also be searched, such as HTTP status code, customer ID, etc.  This feature requires Grafana 7.5 or later, with a linked Loki data source, and a &lt;a href=&#34;/docs/grafana/latest/datasources/loki/#derived-fields&#34;&gt;traceID derived field&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;find-traces-using-tempo-tags-search&#34;&gt;Find traces using Tempo tags search&lt;/h2&gt;
&lt;p&gt;Search for traces using common dimensions such as time range, duration, span tags, service names, and more. Use the trace view to quickly diagnose errors and high-latency events in your system.&lt;/p&gt;
&lt;h3 id=&#34;non-deterministic-search&#34;&gt;Non-deterministic search&lt;/h3&gt;
&lt;p&gt;Most search functions are deterministic: using the same search criteria results in the same results.&lt;/p&gt;
&lt;p&gt;However, Tempo search is non-deterministic.
If you perform the same search twice, you’ll get different lists, assuming the possible number of results for your search is greater than the number of results you have your search set to return.&lt;/p&gt;
&lt;p&gt;When performing a search, Tempo does a massively parallel search over the given time range, and takes the first N results. Even identical searches will differ due to things like machine load and network latency. This approach values speed over predictability and is quite simple; enforcing that the search results are consistent would introduce additional complexity (and increase the time the user spends waiting for results). TraceQL follows the same behavior.&lt;/p&gt;
&lt;h2 id=&#34;service-graph-view&#34;&gt;Service graph view&lt;/h2&gt;
&lt;p&gt;Grafana provides a built-in service graph view available in Grafana Cloud and Grafana 9.1.
The service graph view visualizes the span metrics (traces data for rates, error rates, and durations (RED)) and service graphs.
Once the requirements are set up, this pre-configured view is immediately available in &lt;strong&gt;Explore &amp;gt; Service Graphs&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For more information, refer to the &lt;a href=&#34;../../metrics-generator/service-graph-view/&#34;&gt;service graph view&lt;/a&gt;.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;../assets/apm-overview.png&#34; alt=&#34;Service graph view overview&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;metrics-from-spans&#34;&gt;Metrics from spans&lt;/h2&gt;
&lt;p&gt;RED metrics can be used to drive service graphs and other ready-to-go visualizations of your span data. RED metrics represent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rate, the number of requests per second&lt;/li&gt;
&lt;li&gt;Errors, the number of those requests that are failing&lt;/li&gt;
&lt;li&gt;Duration, the amount of time those requests take&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information about RED method, refer to &lt;a href=&#34;/blog/2018/08/02/the-red-method-how-to-instrument-your-services/&#34;&gt;The RED Method: How to instrument your services&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Metrics generation is disabled by default. Contact Grafana Support to enable metrics generation in your organization.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;After the metrics generator is enabled in your organization, refer to &lt;a href=&#34;../../configuration/&#34;&gt;Metrics-generator configuration&lt;/a&gt; for information about metrics-generator options.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;../assets/trace_service_graph.png&#34; alt=&#34;Trace service graph&#34;&gt;&lt;/p&gt;
&lt;p&gt;These metrics exist in your Hosted Metrics instance and can also be easily used to generate powerful custom dashboards.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;../assets/trace_custom_metrics_dash.png&#34; alt=&#34;Trace custom metrics dashboard&#34;&gt;&lt;/p&gt;
&lt;p&gt;The metrics generator automatically generates exemplars as well which allows easy metrics to trace linking. &lt;a href=&#34;/docs/grafana-cloud/data-configuration/traces/exemplars/&#34;&gt;Exemplars&lt;/a&gt; are GA in Grafana Cloud so you can also push your own.&lt;/p&gt;
&lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;../assets/trace_exemplars.png&#34; alt=&#34;Trace exemplars&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;view-json-file&#34;&gt;View JSON file&lt;/h2&gt;
&lt;p&gt;A local JSON file containing a trace can be uploaded and viewed in the Grafana UI. This is useful in cases where access to the original Tempo data source is limited, or for preserving traces outside of Tempo. The JSON data can be downloaded via the Tempo API or the Inspector panel while viewing the trace in Grafana.&lt;/p&gt;
&lt;h2 id=&#34;linking-traces-and-metrics&#34;&gt;Linking traces and metrics&lt;/h2&gt;
&lt;p&gt;Grafana can correlate different signals by adding the functionality to link between traces and metrics. The &lt;a href=&#34;/blog/2022/08/18/new-in-grafana-9.1-trace-to-metrics-allows-users-to-navigate-from-a-trace-span-to-a-selected-data-source/&#34;&gt;trace to metrics feature&lt;/a&gt;, a beta feature in Grafana 9.1, lets you quickly see trends or aggregated data related to each span.&lt;/p&gt;
&lt;p&gt;You can try it out by enabling the &lt;code&gt;traceToMetrics&lt;/code&gt; feature toggle in your Grafana configuration file.
&lt;a href=&#34;/docs/grafana/latest/setup-grafana/configure-grafana/feature-toggles/&#34;&gt;Refer to the instructions for enabling Grafana feature toggles&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For example, you can use span attributes to metric labels by using the &lt;code&gt;$__tags&lt;/code&gt; keyword to convert span attributes to metrics labels.&lt;/p&gt;
&lt;p&gt;For more information, refer to the &lt;a href=&#34;/docs/grafana/latest/datasources/tempo/#trace-to-metrics&#34;&gt;trace to metric configuration&lt;/a&gt; documentation.&lt;/p&gt;
]]></content><description>&lt;h1 id="tempo-in-grafana">Tempo in Grafana&lt;/h1>
&lt;p>Grafana has a built-in Tempo data source that can be used to query Tempo and visualize traces.
This page describes the high-level features and their availability.
Use the latest versions for best compatibility and stability.&lt;/p></description></item><item><title>Quick start for Tempo</title><link>https://grafana.com/docs/tempo/v2.2.x/getting-started/docker-example/</link><pubDate>Fri, 03 Apr 2026 12:35:46 -0500</pubDate><guid>https://grafana.com/docs/tempo/v2.2.x/getting-started/docker-example/</guid><content><![CDATA[&lt;h1 id=&#34;quick-start-for-tempo&#34;&gt;Quick start for Tempo&lt;/h1&gt;
&lt;p&gt;The Tempo repository provides &lt;a href=&#34;https://github.com/grafana/tempo/tree/main/example/docker-compose&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;multiple examples&lt;/a&gt; to help you quickly get started using Tempo and distributed tracing data.&lt;/p&gt;
&lt;p&gt;Every example has a &lt;code&gt;docker-compose.yaml&lt;/code&gt; manifest that includes all of the options needed to explore trace data in Grafana, including resource configuration and trace data generation.
The Tempo examples running with Docker using docker-compose all include a version of Tempo and a storage configuration like Amazon S3 and GCS.&lt;/p&gt;
&lt;p&gt;This quick start guide uses the &lt;code&gt;local&lt;/code&gt; example running Tempo as a single binary (monolithic). Any data is stored locally in the &lt;code&gt;tempo-data&lt;/code&gt; folder.
To learn more, read the &lt;a href=&#34;https://github.com/grafana/tempo/blob/main/example/docker-compose/local&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;local storage example README&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;alternative-complete-mltp-example&#34;&gt;Alternative: Complete MLTP example&lt;/h2&gt;
&lt;p&gt;If you would like to use a demo with Tempo, Mimir, Loki, and Grafana, then try the &lt;a href=&#34;https://github.com/grafana/intro-to-mlt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Introduction to Metrics, Logs, Traces, and Profiling in Grafana&lt;/a&gt;.
&lt;code&gt;Intro-to-mltp&lt;/code&gt; provides a self-contained environment for learning about Mimir, Loki, Tempo, and Grafana.
The project includes detailed explanations of each component and annotated configurations for a single-instance deployment.
Data from &lt;code&gt;intro-to-mltp&lt;/code&gt; can also be pushed to Grafana Cloud.&lt;/p&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;To follow this guide, you need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;The docker-compose plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;clone-the-tempo-repository-and-start-docker&#34;&gt;Clone the Tempo repository and start Docker&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Clone the Tempo repository:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;git clone https://github.com/grafana/tempo.git&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go into the examples directory:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cd tempo/example/docker-compose/local&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Start the services defined in the docker-compose file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;docker compose up -d&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify that the services are running using &lt;code&gt;docker compose ps&lt;/code&gt;. You should see something like:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;console&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-console&#34;&gt;docker compose ps
NAME                 COMMAND                  SERVICE             STATUS              PORTS
local-grafana-1      &amp;#34;/run.sh&amp;#34;                grafana             running             0.0.0.0:3000-&amp;gt;3000/tcp
local-k6-tracing-1   &amp;#34;/k6-tracing run /ex…&amp;#34;   k6-tracing          running
local-prometheus-1   &amp;#34;/bin/prometheus --c…&amp;#34;   prometheus          running             0.0.0.0:9090-&amp;gt;9090/tcp
local-tempo-1        &amp;#34;/tempo -config.file…&amp;#34;   tempo               running             0.0.0.0:3200-&amp;gt;3200/tcp, 0.0.0.0:4317-4318-&amp;gt;4317-4318/tcp, 0.0.0.0:9411-&amp;gt;9411/tcp, 0.0.0.0:14268-&amp;gt;14268/tcp&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As part of the docker compose manifest, Grafana is now accessible on port 3000. Open a browser to localhost:3000 and sign in to Grafana.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once logged in, navigate to the &lt;strong&gt;Explore&lt;/strong&gt; page, select the &lt;strong&gt;Tempo&lt;/strong&gt; data source and select the &lt;strong&gt;Search&lt;/strong&gt; tab. Select &lt;strong&gt;Run query&lt;/strong&gt; to list the recent traces stored in Tempo. Select one to view the trace diagram:&lt;/p&gt;
 &lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;../../setup/assets/setup-linux-run-query.png&#34; alt=&#34;Query example&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A couple of minutes after Tempo has started up successfully, select the &lt;strong&gt;Service graph&lt;/strong&gt; tab for the Tempo data source in the &lt;strong&gt;Explore&lt;/strong&gt; page. Select &lt;strong&gt;Run query&lt;/strong&gt; to view a service graph, generated by Tempo’s metrics-generator.&lt;/p&gt;
 &lt;p align=&#34;center&#34;&gt;&lt;img src=&#34;../../setup/assets/setup-linux-node-graph.png&#34; alt=&#34;Service graph sample&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To stop the services:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;docker-compose down -v&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="quick-start-for-tempo">Quick start for Tempo&lt;/h1>
&lt;p>The Tempo repository provides &lt;a href="https://github.com/grafana/tempo/tree/main/example/docker-compose" target="_blank" rel="noopener noreferrer">multiple examples&lt;/a> to help you quickly get started using Tempo and distributed tracing data.&lt;/p>
&lt;p>Every example has a &lt;code>docker-compose.yaml&lt;/code> manifest that includes all of the options needed to explore trace data in Grafana, including resource configuration and trace data generation.
The Tempo examples running with Docker using docker-compose all include a version of Tempo and a storage configuration like Amazon S3 and GCS.&lt;/p></description></item></channel></rss>