Skip to content

Commit 9d6470a

Browse files
Upgrade OTel to 1.12.0 and OTel instrumentation to 1.11.1
fixes gh-104
1 parent 770d0ef commit 9d6470a

File tree

13 files changed

+77
-74
lines changed

13 files changed

+77
-74
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@
7070
<spring-cloud-task.version>2.4.0</spring-cloud-task.version>
7171
<spring-cloud-deployer.version>2.7.0</spring-cloud-deployer.version>
7272
<opentracing.version>0.32.0</opentracing.version>
73-
<opentelemetry.version>1.10.1</opentelemetry.version>
74-
<opentelemetry.alpha.version>1.10.1-alpha</opentelemetry.alpha.version>
75-
<opentelemetry-instrumentation.version>1.10.1-alpha</opentelemetry-instrumentation.version>
73+
<opentelemetry.version>1.12.0</opentelemetry.version>
74+
<opentelemetry.alpha.version>1.12.0-alpha</opentelemetry.alpha.version>
75+
<opentelemetry-instrumentation.version>1.11.1-alpha</opentelemetry-instrumentation.version>
7676
<opentelemetry-proto.version>0.11.0-alpha</opentelemetry-proto.version>
7777
<wavefront.version>2.2.0</wavefront.version>
7878
<spring-security-boot-autoconfigure.version>2.3.4.RELEASE</spring-security-boot-autoconfigure.version>

spring-cloud-sleuth-otel-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/OtelBridgeConfiguration.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import io.opentelemetry.api.OpenTelemetry;
2222
import io.opentelemetry.context.ContextStorage;
2323
import io.opentelemetry.context.propagation.ContextPropagators;
24-
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
25-
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
24+
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesGetter;
25+
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesGetter;
2626

2727
import org.springframework.beans.factory.ObjectProvider;
2828
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -60,8 +60,8 @@
6060
import org.springframework.cloud.sleuth.otel.bridge.OtelTracer;
6161
import org.springframework.cloud.sleuth.otel.bridge.SkipPatternSampler;
6262
import org.springframework.cloud.sleuth.otel.bridge.SpanExporterCustomizer;
63-
import org.springframework.cloud.sleuth.otel.bridge.SpringHttpClientAttributesExtractor;
64-
import org.springframework.cloud.sleuth.otel.bridge.SpringHttpServerAttributesExtractor;
63+
import org.springframework.cloud.sleuth.otel.bridge.SpringHttpClientAttributesGetter;
64+
import org.springframework.cloud.sleuth.otel.bridge.SpringHttpServerAttributesGetter;
6565
import org.springframework.cloud.sleuth.propagation.Propagator;
6666
import org.springframework.context.ApplicationEventPublisher;
6767
import org.springframework.context.annotation.Bean;
@@ -128,15 +128,15 @@ HttpClientHandler otelHttpClientHandler(io.opentelemetry.api.OpenTelemetry openT
128128
@Nullable @HttpClientRequestParser HttpRequestParser httpClientRequestParser,
129129
@Nullable @HttpClientResponseParser HttpResponseParser httpClientResponseParser,
130130
SamplerFunction<HttpRequest> samplerFunction,
131-
HttpClientAttributesExtractor<HttpClientRequest, HttpClientResponse> otelHttpAttributesExtractor) {
131+
HttpClientAttributesGetter<HttpClientRequest, HttpClientResponse> otelHttpAttributesGetter) {
132132
return new OtelHttpClientHandler(openTelemetry, httpClientRequestParser, httpClientResponseParser,
133-
samplerFunction, otelHttpAttributesExtractor);
133+
samplerFunction, otelHttpAttributesGetter);
134134
}
135135

136136
@Bean
137137
@ConditionalOnMissingBean
138-
HttpClientAttributesExtractor<HttpClientRequest, HttpClientResponse> otelHttpClientAttributesExtractor() {
139-
return new SpringHttpClientAttributesExtractor();
138+
HttpClientAttributesGetter<HttpClientRequest, HttpClientResponse> otelHttpClientAttributesGetter() {
139+
return new SpringHttpClientAttributesGetter();
140140
}
141141

142142
@Bean
@@ -145,15 +145,15 @@ HttpServerHandler otelHttpServerHandler(io.opentelemetry.api.OpenTelemetry openT
145145
@Nullable @HttpServerRequestParser HttpRequestParser httpServerRequestParser,
146146
@Nullable @HttpServerResponseParser HttpResponseParser httpServerResponseParser,
147147
ObjectProvider<SkipPatternProvider> skipPatternProvider,
148-
HttpServerAttributesExtractor<HttpServerRequest, HttpServerResponse> otelHttpAttributesExtractor) {
148+
HttpServerAttributesGetter<HttpServerRequest, HttpServerResponse> otelHttpAttributesGetter) {
149149
return new OtelHttpServerHandler(openTelemetry, httpServerRequestParser, httpServerResponseParser,
150-
skipPatternProvider.getIfAvailable(() -> () -> Pattern.compile("")), otelHttpAttributesExtractor);
150+
skipPatternProvider.getIfAvailable(() -> () -> Pattern.compile("")), otelHttpAttributesGetter);
151151
}
152152

153153
@Bean
154154
@ConditionalOnMissingBean
155-
HttpServerAttributesExtractor<HttpServerRequest, HttpServerResponse> otelHttpServerAttributesExtractor() {
156-
return new SpringHttpServerAttributesExtractor();
155+
HttpServerAttributesGetter<HttpServerRequest, HttpServerResponse> otelHttpServerAttributesGetter() {
156+
return new SpringHttpServerAttributesGetter();
157157
}
158158

159159
@Bean

spring-cloud-sleuth-otel-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/actuate/OtelOtlpFinishedSpanWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import java.util.List;
2424
import java.util.stream.Collectors;
2525

26-
import io.opentelemetry.exporter.otlp.internal.traces.ResourceSpansMarshaler;
26+
import io.opentelemetry.exporter.internal.otlp.traces.ResourceSpansMarshaler;
2727
import io.opentelemetry.proto.trace.v1.ResourceSpans;
2828
import io.opentelemetry.sdk.trace.data.SpanData;
2929

spring-cloud-sleuth-otel-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/otel/actuate/TraceSleuthOtelActuatorAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Supplier<FinishedSpanWriter> sleuthZipkinOtelFinishedSpanWriter() {
5959
}
6060

6161
@Bean
62-
@ConditionalOnClass(name = "io.opentelemetry.exporter.otlp.internal.traces.ResourceSpansMarshaler")
62+
@ConditionalOnClass(name = "io.opentelemetry.exporter.internal.otlp.traces.ResourceSpansMarshaler")
6363
Supplier<FinishedSpanWriter> sleuthOtlpOtelFinishedSpanWriter() {
6464
return OtelOtlpFinishedSpanWriter::new;
6565
}

spring-cloud-sleuth-otel-dependencies/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<name>spring-cloud-sleuth-otel-dependencies</name>
3232
<description>Spring Cloud Sleuth OTel Dependencies</description>
3333
<properties>
34-
<opentelemetry.version>1.10.1</opentelemetry.version>
34+
<opentelemetry.version>1.12.0</opentelemetry.version>
3535
</properties>
3636
<dependencyManagement>
3737
<dependencies>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package org.springframework.cloud.sleuth.otel.bridge;
1818

19-
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
19+
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter;
2020

2121
import org.springframework.cloud.sleuth.http.HttpRequest;
2222
import org.springframework.cloud.sleuth.http.HttpResponse;
@@ -27,7 +27,7 @@
2727
*
2828
* @author Nikita Salnikov-Tarnovski
2929
*/
30-
class HttpRequestNetClientAttributesExtractor extends NetClientAttributesExtractor<HttpRequest, HttpResponse> {
30+
class HttpRequestNetClientAttributesGetter implements NetClientAttributesGetter<HttpRequest, HttpResponse> {
3131

3232
@Nullable
3333
@Override
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,17 @@
1616

1717
package org.springframework.cloud.sleuth.otel.bridge;
1818

19-
import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesExtractor;
19+
import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesGetter;
2020

2121
import org.springframework.cloud.sleuth.http.HttpRequest;
22-
import org.springframework.cloud.sleuth.http.HttpResponse;
2322
import org.springframework.lang.Nullable;
2423

2524
/**
2625
* Extracts OpenTelemetry network semantic attributes value for server http spans.
2726
*
2827
* @author Nikita Salnikov-Tarnovski
2928
*/
30-
class HttpRequestNetServerAttributesExtractor extends NetServerAttributesExtractor<HttpRequest, HttpResponse> {
29+
class HttpRequestNetServerAttributesGetter implements NetServerAttributesGetter<HttpRequest> {
3130

3231
@Nullable
3332
@Override

spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelHttpClientHandler.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
import io.opentelemetry.context.ContextKey;
2222
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
2323
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
24+
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesGetter;
2425
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
2526
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
27+
import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor;
2628
import org.apache.commons.logging.Log;
2729
import org.apache.commons.logging.LogFactory;
2830

@@ -62,17 +64,17 @@ public class OtelHttpClientHandler implements HttpClientHandler {
6264

6365
public OtelHttpClientHandler(OpenTelemetry openTelemetry, @Nullable HttpRequestParser httpClientRequestParser,
6466
@Nullable HttpResponseParser httpClientResponseParser, SamplerFunction<HttpRequest> samplerFunction,
65-
HttpClientAttributesExtractor<HttpClientRequest, HttpClientResponse> httpAttributesExtractor) {
67+
HttpClientAttributesGetter<HttpClientRequest, HttpClientResponse> httpAttributesGetter) {
6668
this.httpClientRequestParser = httpClientRequestParser;
6769
this.httpClientResponseParser = httpClientResponseParser;
6870
this.samplerFunction = samplerFunction;
6971
this.instrumenter = Instrumenter
7072
.<HttpClientRequest, HttpClientResponse>builder(openTelemetry, "org.springframework.cloud.sleuth",
71-
HttpSpanNameExtractor.create(httpAttributesExtractor))
72-
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesExtractor))
73-
.addAttributesExtractor(new HttpRequestNetClientAttributesExtractor())
74-
.addAttributesExtractor(httpAttributesExtractor).addAttributesExtractor(new PathAttributeExtractor())
75-
.newClientInstrumenter(HttpClientRequest::header);
73+
HttpSpanNameExtractor.create(httpAttributesGetter))
74+
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesGetter))
75+
.addAttributesExtractor(NetClientAttributesExtractor.create(new HttpRequestNetClientAttributesGetter()))
76+
.addAttributesExtractor(HttpClientAttributesExtractor.create(httpAttributesGetter))
77+
.addAttributesExtractor(new PathAttributeExtractor()).newClientInstrumenter(HttpClientRequest::header);
7678
}
7779

7880
@Override

spring-cloud-sleuth-otel/src/main/java/org/springframework/cloud/sleuth/otel/bridge/OtelHttpServerHandler.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@
2424
import io.opentelemetry.context.propagation.TextMapGetter;
2525
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
2626
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
27+
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesGetter;
2728
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
2829
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
30+
import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesExtractor;
2931
import org.apache.commons.logging.Log;
3032
import org.apache.commons.logging.LogFactory;
3133

@@ -63,17 +65,17 @@ public class OtelHttpServerHandler implements HttpServerHandler {
6365

6466
public OtelHttpServerHandler(OpenTelemetry openTelemetry, HttpRequestParser httpServerRequestParser,
6567
HttpResponseParser httpServerResponseParser, SkipPatternProvider skipPatternProvider,
66-
HttpServerAttributesExtractor<HttpServerRequest, HttpServerResponse> httpAttributesExtractor) {
68+
HttpServerAttributesGetter<HttpServerRequest, HttpServerResponse> httpAttributesGetter) {
6769
this.httpServerRequestParser = httpServerRequestParser;
6870
this.httpServerResponseParser = httpServerResponseParser;
6971
this.pattern = skipPatternProvider.skipPattern();
7072
this.instrumenter = Instrumenter
7173
.<HttpServerRequest, HttpServerResponse>builder(openTelemetry, "org.springframework.cloud.sleuth",
72-
HttpSpanNameExtractor.create(httpAttributesExtractor))
73-
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesExtractor))
74-
.addAttributesExtractor(new HttpRequestNetServerAttributesExtractor())
75-
.addAttributesExtractor(httpAttributesExtractor).addAttributesExtractor(new PathAttributeExtractor())
76-
.newServerInstrumenter(getGetter());
74+
HttpSpanNameExtractor.create(httpAttributesGetter))
75+
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesGetter))
76+
.addAttributesExtractor(NetServerAttributesExtractor.create(new HttpRequestNetServerAttributesGetter()))
77+
.addAttributesExtractor(HttpServerAttributesExtractor.create(httpAttributesGetter))
78+
.addAttributesExtractor(new PathAttributeExtractor()).newServerInstrumenter(getGetter());
7779
}
7880

7981
@Override
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import java.util.Collections;
2020
import java.util.List;
2121

22-
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor;
22+
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesGetter;
2323

2424
import org.springframework.cloud.sleuth.http.HttpClientRequest;
2525
import org.springframework.cloud.sleuth.http.HttpClientResponse;
@@ -30,66 +30,66 @@
3030
*
3131
* @author Nikita Salnikov-Tarnovski
3232
*/
33-
public class SpringHttpClientAttributesExtractor
34-
extends HttpClientAttributesExtractor<HttpClientRequest, HttpClientResponse> {
33+
public class SpringHttpClientAttributesGetter
34+
implements HttpClientAttributesGetter<HttpClientRequest, HttpClientResponse> {
3535

3636
@Nullable
3737
@Override
38-
protected String url(HttpClientRequest httpClientRequest) {
38+
public String url(HttpClientRequest httpClientRequest) {
3939
return httpClientRequest.url();
4040
}
4141

4242
@Nullable
4343
@Override
44-
protected String flavor(HttpClientRequest httpClientRequest, @Nullable HttpClientResponse httpClientResponse) {
44+
public String flavor(HttpClientRequest httpClientRequest, @Nullable HttpClientResponse httpClientResponse) {
4545
return null;
4646
}
4747

4848
@Override
49-
protected String method(HttpClientRequest httpClientRequest) {
49+
public String method(HttpClientRequest httpClientRequest) {
5050
return httpClientRequest.method();
5151
}
5252

5353
@Override
54-
protected List<String> requestHeader(HttpClientRequest httpClientRequest, String name) {
54+
public List<String> requestHeader(HttpClientRequest httpClientRequest, String name) {
5555
String value = httpClientRequest.header(name);
5656
return value == null ? Collections.emptyList() : Collections.singletonList(value);
5757
}
5858

5959
@Nullable
6060
@Override
61-
protected Long requestContentLength(HttpClientRequest httpClientRequest,
61+
public Long requestContentLength(HttpClientRequest httpClientRequest,
6262
@Nullable HttpClientResponse httpClientResponse) {
6363
return null;
6464
}
6565

6666
@Nullable
6767
@Override
68-
protected Long requestContentLengthUncompressed(HttpClientRequest httpClientRequest,
68+
public Long requestContentLengthUncompressed(HttpClientRequest httpClientRequest,
6969
@Nullable HttpClientResponse httpClientResponse) {
7070
return null;
7171
}
7272

7373
@Override
74-
protected Integer statusCode(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse) {
74+
public Integer statusCode(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse) {
7575
return httpClientResponse.statusCode();
7676
}
7777

7878
@Nullable
7979
@Override
80-
protected Long responseContentLength(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse) {
80+
public Long responseContentLength(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse) {
8181
return null;
8282
}
8383

8484
@Nullable
8585
@Override
86-
protected Long responseContentLengthUncompressed(HttpClientRequest httpClientRequest,
86+
public Long responseContentLengthUncompressed(HttpClientRequest httpClientRequest,
8787
HttpClientResponse httpClientResponse) {
8888
return null;
8989
}
9090

9191
@Override
92-
protected List<String> responseHeader(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse,
92+
public List<String> responseHeader(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse,
9393
String name) {
9494
String value = httpClientResponse.header(name);
9595
return value == null ? Collections.emptyList() : Collections.singletonList(value);

0 commit comments

Comments
 (0)