Extending instrumentations with the API

Use the OpenTelemetry API in combination with the Spring Boot starter to extend the automatically generated telemetry with custom spans and metrics

Introduction

In addition to the out-of-the-box instrumentation, you can extend the Spring starter with custom manual instrumentation using the OpenTelemetry API. This allows you to create spans and metrics for your own code without doing too many code changes.

The required dependencies are already included in the Spring Boot starter.

OpenTelemetry

The Spring Boot starter is a special case where OpenTelemetry is available as a Spring bean. Simply inject OpenTelemetry into your Spring components.

Span

import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Tracer;

@Controller
public class MyController {
  private final Tracer tracer;

  public MyController(OpenTelemetry openTelemetry) {
    this.tracer = openTelemetry.getTracer("application");
  }
}

Use o Tracer para criar um trecho explicado na seção trechos.

Um exemplo completo pode ser encontrado no repositório de exemplos.

Meter

import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.metrics.Meter;

@Controller
public class MyController {
  private final Meter meter;

  public MyController(OpenTelemetry openTelemetry) {
    this.meter = openTelemetry.getMeter("application");
  }
}

Use o Meter para criar um contador, medidor ou histograma explicado na seção medidor.

Um exemplo completo pode ser encontrado no repositório de exemplos.


Last modified June 15, 2025: Fix spell. (30ccd564)