はじめに

互換性

OpenTelemetry Spring Bootスターターは、Spring Boot 2.6+および3.1+、そしてSpring Bootネイティブイメージアプリケーションで動作します。 opentelemetry-java-examples/spring-nativeリポジトリには、OpenTelemetry Spring Bootスターターを使用して計装されたSpring Bootネイティブイメージアプリケーションの例が含まれています。

依存関係の管理

Bill of Material(BOM)は、依存関係(推移的なものを含む)のバージョンが整合していることを保証します。

OpenTelemetryスターターを使用する際は、すべてのOpenTelemetry依存関係のバージョン整合性を確保するために、opentelemetry-instrumentation-bom BOMをインポートする必要があります。

以下の例は、Mavenを使用してOpenTelemetry BOMをインポートする方法を示しています。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.opentelemetry.instrumentation</groupId>
            <artifactId>opentelemetry-instrumentation-bom</artifactId>
            <version>2.20.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

GradleとSpring Bootでは、BOMをインポートする方法が2つあります。

GradleのネイティブなBOMサポートを使用してdependenciesを追加できます。

import org.springframework.boot.gradle.plugin.SpringBootPlugin

plugins {
  id("java")
  id("org.springframework.boot") version "3.2.O"
}

dependencies {
  implementation(platform(SpringBootPlugin.BOM_COORDINATES))
  implementation(platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:2.20.1"))
}

Gradleでのもう一つの方法は、io.spring.dependency-managementプラグインを使用し、dependencyManagementでBOMをインポートすることです。

plugins {
  id("java")
  id("org.springframework.boot") version "3.2.O"
  id("io.spring.dependency-management") version "1.1.0"
}

dependencyManagement {
  imports {
    mavenBom("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:2.20.1")
  }
}

OpenTelemetryスターターの依存関係

OpenTelemetryスターターを有効にするには、以下の依存関係を追加します。

OpenTelemetryスターターは、OpenTelemetry Spring Boot自動構成を使用します。

<dependency>
    <groupId>io.opentelemetry.instrumentation</groupId>
    <artifactId>opentelemetry-spring-boot-starter</artifactId>
</dependency>
implementation("io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter")