Skip to content

Latest commit

 

History

History
75 lines (54 loc) · 2.06 KB

File metadata and controls

75 lines (54 loc) · 2.06 KB
title linkTitle description weight
Extending instrumentations with the API
Extend 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
21

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

{{% alert title="Note" color="info" %}}

For the most common use cases, use the @WithSpan annotation instead of manual instrumentation. See Annotations for more information.

{{% /alert %}}

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 the Tracer to create a span as explained in the Span section.

A full example can be found in the example repository.

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 the Meter to create a counter, gauge or histogram as explained in the Meter section.

A full example can be found in the example repository.