Migrating from OpenTelemetry Spring Boot Starter to Arconia OpenTelemetry
Arconia provides unified observability for Spring Boot applications, combining full support for OpenTelemetry API, SDK, and Instrumentation while also providing a seamless integration with Micrometer API and Instrumentation. The goal is to provide a single, unified observability solution for Spring Boot applications that can give you the best of both worlds: the standardization and ubiquity of OpenTelemetry and the robustness and stability of Micrometer.
If you’re currently using the OpenTelemetry Spring Boot Starter, you can easily migrate to Arconia OpenTelemetry and benefit from the full OpenTelemetry API, SDK, and Instrumentation support while also gaining full support for Micrometer API and Instrumentation, and developer experience improvements.
Dependencies
For starters, include the Arconia OpenTelemetry Spring Boot Starter dependency to your project.
-
Gradle
-
Maven
dependencies {
implementation 'io.arconia:arconia-opentelemetry-spring-boot-starter'
}
dependencyManagement {
imports {
mavenBom "io.arconia:arconia-bom:0.14.1"
}
}
<dependency>
<groupId>io.arconia</groupId>
<artifactId>arconia-opentelemetry-spring-boot-starter</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.arconia</groupId>
<artifactId>arconia-bom</artifactId>
<version>0.14.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Next, you can remove the dependencies you previously used for the OpenTelemetry Spring Boot Starter, including the following.
Dependency | Why Remove |
---|---|
|
Replaced by Arconia OpenTelemetry Spring Boot Starter. |
If you included the OpenTelemetry BOM in your project, you can remove it as well. Arconia will manage the OpenTelemetry dependencies for you, so you don’t need to include the OpenTelemetry BOM in your project. |
Configuration Properties
The OpenTelemetry Spring Boot Starter provides a set of configuration properties to customize the OpenTelemetry SDK and Instrumentation. Arconia OpenTelemetry provides a similar set of configuration properties, but with some differences.
Arconia supports the OpenTelemetry Environment Variable Specification for configuring the OpenTelemetry integration. If both the OpenTelemetry Environment Variables and the Arconia configuration properties are set, the OpenTelemetry Environment Variables will take precedence.
You can disable this support by setting the arconia.otel.compatibility.environment-variable-specification configuration property to false .
|
If you were using the OpenTelemetry Environment Variables in your application (e.g. OTEL_EXPORTER_OTLP_ENDPOINT
), you can continue to do so with Arconia OpenTelemetry, either directly as environment variables or using one of the relaxed-binding forms supported by Spring Boot (e.g. otel.exporter.otlp.endpoint
as a configuration property or JVM system property).
For the rest, Arconia OpenTelemetry provides its own set of configuration properties that are similar to the OpenTelemetry Spring Boot Starter, but with some differences in naming and structure. You can find all the configuration properties under the arconia.otel
namespace.
Beans
If you customized the OpenTelemetry SDK in your Spring Boot application, the same code will work with Arconia Opentelemetry. Therefore, no changes are required in this area.
If you customized the OpenTelemetry SDK Autoconfigure module via code, that same code will not work with Arconia OpenTelemetry because that module is not supported since Spring Boot comes already with an autoconfiguration strategy, and we didn’t see the benefits in adding an extra layer. You can apply equivalent changes directly against the OpenTelemetry SDK. |
Dev Services
The OpenTelemetry Spring Boot Starter doesn’t support dev services. Learn more about the Arconia Grafana LGTM Dev Service in the dedicated section.