> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tracing Overview

ActivePivot provides tracing capabilities through the OpenTelemetry API, which can be used with a
variety of observability backends.

By default, ActivePivot enables tracing for the CSV source and every query execution, including distributed queries (i.e. all queries endpoints are traced).

## Tracing Setup

In order to use Atoti Server's tracing capabilities, you will need to use your chosen
OpenTelemetry-compatible backend, such as OpenTelemetry SDK, to generate an `OpenTelemetry` instance. That instance must then be
supplied to Atoti Server in one of these two ways:

* Through a call to `Tracing.setOtelInstance()`.
* By setting the `GlobalOpenTelemetry`.

Please note that in the event that both of these means are used, the instance supplied
through `Tracing.setOtelInstance()` has precedence.

Tracing granularity can be configured within Atoti Server by calling `Tracing.setSpanLevel()`. There are three possibilities :

* NONE : continues the parent span.
* SPECIFIC : mode creates new child span when some significant tasks are being invoked, specified in `Tracing#IMPORTANT_TASKS`.
* TASK :  mode creates new child span whenever a new ForkJoinTask is being called.

Please refer the \{@javadocLink: SpanLevel|com/activeviam/tracing/tracer/ITracer.SpanLevel.html} for more details.
