Skip to main content

Tracing Overview

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

By default, Atoti 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.

For spring based properties please refer to the Spring Cloud Sleuth Reference Documentation.

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 SpanLevel for more details.