> For the complete documentation index, see [llms.txt](https://docs.thousandeyes.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thousandeyes.com/product-documentation/integration-guides/custom-built-integrations/distributed-tracing.md).

# Distributed Tracing

Distributed tracing in ThousandEyes provides end-to-end visibility across your application stack. It works by automatically injecting standard trace headers into API, HTTP server, page load, and transaction tests. This lets you correlate network performance issues with application traces in a supported observability backend.

## Create a ThousandEyes Test with Distributed Tracing

Before setting up any distributed tracing integration, create a ThousandEyes test with distributed tracing enabled:

1. Create a test in ThousandEyes that supports distributed tracing. For more information on creating a test, see [Getting Started with Cloud and Enterprise Agent Tests](https://docs.thousandeyes.com/product-documentation/getting-started/getting-started-with-cloud-and-enterprise-agent-tests).
2. Under **Advanced Settings**, enable **Distributed Tracing**. ![Enable Distributed Tracing](/files/mT511qLtBev7dmYcxJiX)
3. ThousandEyes automatically injects the following trace headers into requests:

   * `b3`
   * `traceparent`
   * `tracestate`

   ![Request Headers](/files/UG0LVLElksOyceehu2hX)

   This lets ThousandEyes capture the trace ID of the request (for example, `0a0c3e94ca224a898f43038e8e99519a`).

## Monitored Endpoint Requirements

The monitored endpoint must meet the following requirements:

* Accept HTTP headers.
* Be instrumented with OpenTelemetry.
* Propagate trace context.
* Send traces to your observability backend.

{% hint style="warning" %}
Do not use a web page URL with distributed tracing. Browsers do not accept custom trace headers.
{% endhint %}
