APIを使った計装の拡張

Spring BootスターターとOpenTelemetry APIを組み合わせて、自動生成されたテレメトリーをカスタムスパンとメトリクスで拡張する

はじめに

すぐに使える計装に加えて、OpenTelemetry APIを使用してSpringスターターをカスタムの手動計装で拡張できます。 これにより、多くのコード変更をせずに、独自のコードに対してスパンメトリクスを作成できます。

必要な依存関係はすでにSpring Bootスターターに含まれています。

OpenTelemetry

Spring Bootスターターは、Spring BeanとしてOpenTelemetryを利用できる特殊なケースです。 ただSpringコンポーネントにOpenTelemetryを注入するだけです。

スパン

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");
  }
}

スパンセクションで説明されているように、Tracerを使用してスパンを作成します。

完全な例はサンプルリポジトリにあります。

メーター

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");
  }
}

メーターセクションで説明されているように、Meterを使用してカウンター、ゲージ、またはヒストグラムを作成します。

完全な例はサンプルリポジトリにあります。