// Module included in the following assemblies:
//
// * observability/distr_tracing/distr-tracing-tempo-architecture.adoc
// * service_mesh/v2x/ossm-architecture.adoc
// * service_mesh/v1x/ossm-architecture.adoc
// * serverless/observability/tracing/serverless-tracing.adoc

:_mod-docs-content-type: CONCEPT
[id="distr-tracing-tempo-key-concepts-in-distributed-tracing_{context}"]
= Key concepts in distributed tracing

Every time a user takes an action in an application, a request is executed by the architecture that may require dozens of different services to participate to produce a response.
{DTProductName} lets you perform distributed tracing, which records the path of a request through various microservices that make up an application.

_Distributed tracing_ is a technique that is used to tie the information about different units of work together — usually executed in different processes or hosts — to understand a whole chain of events in a distributed transaction.
Developers can visualize call flows in large microservice architectures with distributed tracing.
It is valuable for understanding serialization, parallelism, and sources of latency.

{DTProductName} records the execution of individual requests across the whole stack of microservices, and presents them as traces. A _trace_ is a data/execution path through the system. An end-to-end trace consists of one or more spans.

A _span_ represents a logical unit of work in {DTProductName} that has an operation name, the start time of the operation, and the duration, as well as potentially tags and logs. Spans may be nested and ordered to model causal relationships.

As a service owner, you can use distributed tracing to instrument your services to gather insights into your service architecture.
You can use {DTProductName} for monitoring, network profiling, and troubleshooting the interaction between components in modern, cloud-native, microservices-based applications.

With {DTShortName}, you can perform the following functions:

* Monitor distributed transactions

* Optimize performance and latency

* Perform root cause analysis

You can combine {DTShortName} with other relevant components of the {product-title}:

* {OTELName} for forwarding traces to a TempoStack instance

* Distributed tracing UI plugin of the {coo-first}
