入门
您还可以使用 Java Agent 来检测您的 Spring Boot 应用程序。有关优缺点,请参阅 Java Zero-Code 检测。
兼容性
OpenTelemetry Spring Boot Starter 与 Spring Boot 2.6+ 和 3.1+ 以及 Spring Boot Native 镜像应用程序兼容。 opentelemetry-java-examples/spring-native 存储库包含一个使用 OpenTelemetry Spring Boot Starter 检测的 Spring Boot Native 镜像应用程序的示例。
依赖管理
物料清单 (BOM) (Bill of Material (BOM)) 可确保依赖项(包括传递依赖项)的版本保持一致。
为了确保所有 OpenTelemetry 依赖项的版本一致,在使用 OpenTelemetry Starter 时,您必须导入 opentelemetry-instrumentation-bom BOM。
使用 Maven 时,请在项目中的任何其他 BOM 之前导入 OpenTelemetry BOM。例如,如果您导入 spring-boot-dependencies BOM,则必须在 OpenTelemetry BOM 之后声明它。
Gradle 会在多个 BOM 存在时选择依赖项的最新版本,因此 BOM 的顺序并不重要。
以下示例展示了如何使用 Maven 导入 OpenTelemetry BOM。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-bom</artifactId>
<version>2.23.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
使用 Gradle 和 Spring Boot 时,您可以通过两种方式导入 BOM。
您可以通过添加 dependencies 来使用 Gradle 的原生 BOM 支持。
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.23.0"))
}
使用 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.23.0")
}
}
请小心不要混淆 Gradle 的不同配置方式。例如,不要将 implementation(platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:2.23.0")) 与 io.spring.dependency-management 插件一起使用。
OpenTelemetry Starter 依赖
添加以下依赖项以启用 OpenTelemetry Starter。
OpenTelemetry Starter 使用 OpenTelemetry Spring Boot 的自动配置。
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-boot-starter</artifactId>
</dependency>
implementation("io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter")