Skip to content

Commit aec0821

Browse files
authored
Implement OpenTelemetry in Spring Boot 3 using the Micrometer (#18460)
* opentelemtry for spring boot 3 * refactoring * fixed lint issues * refactoring * remove all deprecated code related to spring cloud sleuth * include version property * include version property
1 parent c72f2cf commit aec0821

File tree

36 files changed

+136
-162
lines changed

36 files changed

+136
-162
lines changed

spring-boot-modules/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
<module>spring-boot-mvc-birt</module>
7070
<module>spring-boot-mvc-jersey</module>
7171
<module>spring-boot-nashorn</module>
72+
<module>spring-boot-open-telemetry</module>
7273
<module>spring-boot-parent</module>
7374
<module>spring-boot-performance</module>
7475
<module>spring-boot-pkl</module>

spring-cloud-modules/spring-cloud-open-telemetry/README.md renamed to spring-boot-modules/spring-boot-open-telemetry/README.md

File renamed without changes.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
services:
2+
product-service:
3+
build: spring-boot-open-telemetry1/
4+
ports:
5+
- "8080:8080"
6+
depends_on:
7+
- collector
8+
9+
price-service:
10+
build: spring-boot-open-telemetry2/
11+
ports:
12+
- "8081"
13+
depends_on:
14+
- collector
15+
16+
collector:
17+
image: jaegertracing/jaeger:2.5.0
18+
ports:
19+
- "16686:16686"
20+
- "4318:4318"

spring-cloud-modules/spring-cloud-open-telemetry/pom.xml renamed to spring-boot-modules/spring-boot-open-telemetry/pom.xml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
44
<modelVersion>4.0.0</modelVersion>
5-
<groupId>com.baeldung.spring.cloud</groupId>
6-
<artifactId>spring-cloud-open-telemetry</artifactId>
5+
<groupId>com.baeldung.spring.boot</groupId>
6+
<artifactId>spring-boot-open-telemetry</artifactId>
77
<version>1.0.0-SNAPSHOT</version>
88
<packaging>pom</packaging>
9-
<name>spring-cloud-open-telemetry</name>
9+
<name>spring-boot-open-telemetry</name>
1010

1111
<parent>
12-
<groupId>com.baeldung.spring.cloud</groupId>
13-
<artifactId>spring-cloud-modules</artifactId>
12+
<groupId>com.baeldung.spring-boot-modules</groupId>
13+
<artifactId>spring-boot-modules</artifactId>
1414
<version>1.0.0-SNAPSHOT</version>
1515
</parent>
1616

1717
<modules>
18-
<module>spring-cloud-open-telemetry1</module>
19-
<module>spring-cloud-open-telemetry2</module>
18+
<module>spring-boot-open-telemetry1</module>
19+
<module>spring-boot-open-telemetry2</module>
2020
</modules>
2121

2222
</project>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM openjdk:17-alpine
2+
3+
COPY target/spring-boot-open-telemetry1-1.0.0-SNAPSHOT.jar spring-boot-open-telemetry.jar
4+
5+
EXPOSE 8080
6+
7+
ENTRYPOINT ["java","-jar","/spring-boot-open-telemetry.jar"]

spring-cloud-modules/spring-cloud-open-telemetry/spring-cloud-open-telemetry1/pom.xml renamed to spring-boot-modules/spring-boot-open-telemetry/spring-boot-open-telemetry1/pom.xml

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
55
<modelVersion>4.0.0</modelVersion>
6-
<artifactId>spring-cloud-open-telemetry1</artifactId>
7-
<groupId>com.baeldung.spring.cloud</groupId>
6+
<artifactId>spring-boot-open-telemetry1</artifactId>
87
<version>1.0.0-SNAPSHOT</version>
98
<packaging>jar</packaging>
10-
<name>spring-cloud-open-telemetry1</name>
9+
<name>spring-boot-open-telemetry1</name>
1110

1211
<parent>
13-
<groupId>com.baeldung.spring.cloud</groupId>
14-
<artifactId>spring-cloud-open-telemetry</artifactId>
12+
<groupId>com.baeldung.spring.boot</groupId>
13+
<artifactId>spring-boot-open-telemetry</artifactId>
1514
<version>1.0.0-SNAPSHOT</version>
1615
</parent>
1716

@@ -24,20 +23,6 @@
2423
<type>pom</type>
2524
<scope>import</scope>
2625
</dependency>
27-
<dependency>
28-
<groupId>org.springframework.cloud</groupId>
29-
<artifactId>spring-cloud-dependencies</artifactId>
30-
<version>${release.train.version}</version>
31-
<type>pom</type>
32-
<scope>import</scope>
33-
</dependency>
34-
<dependency>
35-
<groupId>org.springframework.cloud</groupId>
36-
<artifactId>spring-cloud-sleuth-otel-dependencies</artifactId>
37-
<version>${spring-cloud-sleuth-otel.version}</version>
38-
<scope>import</scope>
39-
<type>pom</type>
40-
</dependency>
4126
</dependencies>
4227
</dependencyManagement>
4328

@@ -46,31 +31,37 @@
4631
<groupId>org.springframework.boot</groupId>
4732
<artifactId>spring-boot-starter-web</artifactId>
4833
</dependency>
34+
4935
<dependency>
50-
<groupId>org.springframework.cloud</groupId>
51-
<artifactId>spring-cloud-starter-sleuth</artifactId>
52-
<exclusions>
53-
<exclusion>
54-
<groupId>org.springframework.cloud</groupId>
55-
<artifactId>spring-cloud-sleuth-brave</artifactId>
56-
</exclusion>
57-
</exclusions>
36+
<groupId>org.springframework.boot</groupId>
37+
<artifactId>spring-boot-starter-actuator</artifactId>
38+
</dependency>
39+
40+
<dependency>
41+
<groupId>io.micrometer</groupId>
42+
<artifactId>micrometer-tracing</artifactId>
43+
<version>${micrometer-tracing-version}</version>
5844
</dependency>
45+
5946
<dependency>
60-
<groupId>org.springframework.cloud</groupId>
61-
<artifactId>spring-cloud-sleuth-otel-autoconfigure</artifactId>
47+
<groupId>io.micrometer</groupId>
48+
<artifactId>micrometer-tracing-bridge-otel</artifactId>
49+
<version>${micrometer-tracing-version}</version>
6250
</dependency>
51+
6352
<dependency>
6453
<groupId>io.opentelemetry</groupId>
6554
<artifactId>opentelemetry-exporter-otlp</artifactId>
6655
<version>${otel-exporter-otlp.version}</version>
6756
</dependency>
57+
6858
<dependency>
6959
<groupId>org.junit.jupiter</groupId>
7060
<artifactId>junit-jupiter-engine</artifactId>
71-
<version>${junit-jupiter.version}</version>
61+
<version>${junit-jupiter-engine.version}</version>
7262
<scope>test</scope>
7363
</dependency>
64+
7465
</dependencies>
7566

7667
<build>
@@ -90,10 +81,11 @@
9081
</build>
9182

9283
<properties>
93-
<spring-boot-dependencies.version>2.7.9</spring-boot-dependencies.version>
94-
<release.train.version>2021.0.5</release.train.version>
95-
<spring-cloud-sleuth-otel.version>1.1.2</spring-cloud-sleuth-otel.version>
96-
<otel-exporter-otlp.version>1.23.1</otel-exporter-otlp.version>
84+
<spring-boot-dependencies.version>3.4.4</spring-boot-dependencies.version>
85+
<micrometer-tracing-version>1.4.4</micrometer-tracing-version>
86+
<otel-exporter-otlp.version>1.39.0</otel-exporter-otlp.version>
87+
<logback.version>1.5.16</logback.version>
88+
<junit-jupiter-engine.version>5.4.2</junit-jupiter-engine.version>
9789
</properties>
9890

9991
</project>

spring-cloud-modules/spring-cloud-open-telemetry/spring-cloud-open-telemetry1/src/main/java/com/baeldung/opentelemetry/ProductApplication.java renamed to spring-boot-modules/spring-boot-open-telemetry/spring-boot-open-telemetry1/src/main/java/com/baeldung/opentelemetry/ProductApplication.java

File renamed without changes.

spring-cloud-modules/spring-cloud-open-telemetry/spring-cloud-open-telemetry1/src/main/java/com/baeldung/opentelemetry/api/client/PriceClient.java renamed to spring-boot-modules/spring-boot-open-telemetry/spring-boot-open-telemetry1/src/main/java/com/baeldung/opentelemetry/api/client/PriceClient.java

File renamed without changes.

spring-cloud-modules/spring-cloud-open-telemetry/spring-cloud-open-telemetry1/src/main/java/com/baeldung/opentelemetry/configuration/RestConfiguration.java renamed to spring-boot-modules/spring-boot-open-telemetry/spring-boot-open-telemetry1/src/main/java/com/baeldung/opentelemetry/configuration/RestTemplateConfig.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.baeldung.opentelemetry.configuration;
22

3+
import org.springframework.boot.web.client.RestTemplateBuilder;
34
import org.springframework.context.annotation.Bean;
45
import org.springframework.context.annotation.Configuration;
56
import org.springframework.web.client.RestTemplate;
67

78
@Configuration
8-
public class RestConfiguration {
9+
class RestTemplateConfig {
910

1011
@Bean
11-
public RestTemplate restTemplate() {
12-
return new RestTemplate();
12+
RestTemplate restTemplate(RestTemplateBuilder builder) {
13+
return builder.build();
1314
}
14-
15-
}
15+
}

spring-cloud-modules/spring-cloud-open-telemetry/spring-cloud-open-telemetry1/src/main/java/com/baeldung/opentelemetry/controller/ProductController.java renamed to spring-boot-modules/spring-boot-open-telemetry/spring-boot-open-telemetry1/src/main/java/com/baeldung/opentelemetry/controller/ProductController.java

File renamed without changes.

0 commit comments

Comments
 (0)