Skip to content

Commit 69b4384

Browse files
Bumped OTel to 1.18.0 (#125)
1 parent c6d1c7e commit 69b4384

File tree

9 files changed

+79
-74
lines changed

9 files changed

+79
-74
lines changed

pom.xml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,10 @@
7070
<spring-cloud-task.version>2.4.2</spring-cloud-task.version>
7171
<spring-cloud-deployer.version>2.7.2</spring-cloud-deployer.version>
7272
<opentracing.version>0.32.0</opentracing.version>
73-
<opentelemetry.version>1.16.0</opentelemetry.version>
74-
<opentelemetry.alpha.version>1.16.0-alpha</opentelemetry.alpha.version>
75-
<opentelemetry-instrumentation.version>1.16.0-alpha</opentelemetry-instrumentation.version>
73+
<opentelemetry.version>1.18.0</opentelemetry.version>
74+
<opentelemetry-alpha.version>1.18.0-alpha</opentelemetry-alpha.version>
75+
<opentelemetry-instrumentation.version>1.18.0</opentelemetry-instrumentation.version>
76+
<opentelemetry-instrumentation-alpha.version>1.18.0-alpha</opentelemetry-instrumentation-alpha.version>
7677
<opentelemetry-proto.version>0.11.0-alpha</opentelemetry-proto.version>
7778
<wavefront.version>2.2.0</wavefront.version>
7879
<spring-security-boot-autoconfigure.version>2.3.4.RELEASE</spring-security-boot-autoconfigure.version>
@@ -258,7 +259,7 @@
258259
<dependency>
259260
<groupId>io.opentelemetry</groupId>
260261
<artifactId>opentelemetry-bom-alpha</artifactId>
261-
<version>${opentelemetry.alpha.version}</version>
262+
<version>${opentelemetry-alpha.version}</version>
262263
<type>pom</type>
263264
<scope>import</scope>
264265
</dependency>
@@ -298,7 +299,7 @@
298299
<dependency>
299300
<groupId>io.opentelemetry.instrumentation</groupId>
300301
<artifactId>opentelemetry-instrumentation-api-semconv</artifactId>
301-
<version>${opentelemetry-instrumentation.version}</version>
302+
<version>${opentelemetry-instrumentation-alpha.version}</version>
302303
</dependency>
303304
<dependency>
304305
<groupId>org.springframework.security.oauth</groupId>

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,14 @@ public Integer peerPort(HttpRequest httpRequest, @Nullable HttpResponse httpResp
4646
return httpRequest == null ? null : httpRequest.remotePort();
4747
}
4848

49-
@Nullable
5049
@Override
51-
public String peerIp(HttpRequest httpRequest, @Nullable HttpResponse httpResponse) {
50+
public String sockPeerAddr(HttpRequest httpRequest, HttpResponse httpResponse) {
5251
return httpRequest == null ? null : httpRequest.remoteIp();
5352
}
5453

54+
@Override
55+
public Integer sockPeerPort(HttpRequest httpRequest, HttpResponse httpResponse) {
56+
return httpRequest == null ? null : httpRequest.remotePort();
57+
}
58+
5559
}

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

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616

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

19+
import java.net.URI;
20+
1921
import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesGetter;
2022

2123
import org.springframework.cloud.sleuth.http.HttpRequest;
22-
import org.springframework.lang.Nullable;
2324

2425
/**
2526
* Extracts OpenTelemetry network semantic attributes value for server http spans.
@@ -28,21 +29,39 @@
2829
*/
2930
class HttpRequestNetServerAttributesGetter implements NetServerAttributesGetter<HttpRequest> {
3031

31-
@Nullable
3232
@Override
3333
public String transport(HttpRequest httpRequest) {
34-
return null;
34+
String url = httpRequest.url();
35+
if (url == null) {
36+
return null;
37+
}
38+
URI uri = URI.create(url);
39+
return uri.getScheme();
40+
}
41+
42+
@Override
43+
public String hostName(HttpRequest httpRequest) {
44+
String url = httpRequest.url();
45+
if (url == null) {
46+
return null;
47+
}
48+
URI uri = URI.create(url);
49+
return uri.getHost();
3550
}
3651

3752
@Override
38-
public Integer peerPort(HttpRequest httpRequest) {
53+
public Integer hostPort(HttpRequest httpRequest) {
3954
return httpRequest.remotePort();
4055
}
4156

42-
@Nullable
4357
@Override
44-
public String peerIp(HttpRequest httpRequest) {
58+
public String sockPeerAddr(HttpRequest httpRequest) {
4559
return httpRequest.remoteIp();
4660
}
4761

62+
@Override
63+
public Integer sockPeerPort(HttpRequest httpRequest) {
64+
return httpRequest.remotePort();
65+
}
66+
4867
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ public OtelHttpClientHandler(OpenTelemetry openTelemetry, @Nullable HttpRequestP
7474
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesGetter))
7575
.addAttributesExtractor(NetClientAttributesExtractor.create(new HttpRequestNetClientAttributesGetter()))
7676
.addAttributesExtractor(HttpClientAttributesExtractor.create(httpAttributesGetter))
77-
.addAttributesExtractor(new PathAttributeExtractor()).newClientInstrumenter(HttpClientRequest::header);
77+
.addAttributesExtractor(new PathAttributeExtractor())
78+
.buildClientInstrumenter(HttpClientRequest::header);
7879
}
7980

8081
@Override
@@ -111,6 +112,9 @@ private Span span(Context context, HttpClientRequest request) {
111112
if (this.httpClientRequestParser != null) {
112113
this.httpClientRequestParser.parse(request, result.context(), result);
113114
}
115+
if (request.remotePort() != 0) {
116+
result.remoteIpAndPort(request.remoteIp(), request.remotePort());
117+
}
114118
return result;
115119
}
116120

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public OtelHttpServerHandler(OpenTelemetry openTelemetry, HttpRequestParser http
7575
.setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesGetter))
7676
.addAttributesExtractor(NetServerAttributesExtractor.create(new HttpRequestNetServerAttributesGetter()))
7777
.addAttributesExtractor(HttpServerAttributesExtractor.create(httpAttributesGetter))
78-
.addAttributesExtractor(new PathAttributeExtractor()).newServerInstrumenter(getGetter());
78+
.addAttributesExtractor(new PathAttributeExtractor()).buildServerInstrumenter(getGetter());
7979
}
8080

8181
@Override

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.concurrent.atomic.AtomicReference;
2121

2222
import io.opentelemetry.context.Context;
23+
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
2324

2425
import org.springframework.cloud.sleuth.Span;
2526
import org.springframework.cloud.sleuth.docs.AssertingSpan;
@@ -112,6 +113,13 @@ public void end() {
112113
this.delegate.end();
113114
}
114115

116+
@Override
117+
public Span remoteIpAndPort(String ip, int port) {
118+
this.delegate.setAttribute(SemanticAttributes.NET_PEER_IP, ip);
119+
this.delegate.setAttribute(SemanticAttributes.NET_PEER_PORT, (long) port);
120+
return this;
121+
}
122+
115123
@Override
116124
public void abandon() {
117125
// TODO: [OTEL] doesn't seem to have this notion yet

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121

2222
import io.opentelemetry.api.trace.SpanKind;
23+
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
2324

2425
import org.springframework.cloud.sleuth.Span;
2526
import org.springframework.cloud.sleuth.TraceContext;
@@ -118,6 +119,13 @@ public Span.Builder remoteServiceName(String remoteServiceName) {
118119
return this;
119120
}
120121

122+
@Override
123+
public Span.Builder remoteIpAndPort(String ip, int port) {
124+
this.delegate.setAttribute(SemanticAttributes.NET_PEER_IP, ip);
125+
this.delegate.setAttribute(SemanticAttributes.NET_PEER_PORT, (long) port);
126+
return this;
127+
}
128+
121129
@Override
122130
public Span start() {
123131
io.opentelemetry.api.trace.Span span = this.delegate.startSpan();

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

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -52,47 +52,35 @@ public String method(HttpClientRequest httpClientRequest) {
5252

5353
@Override
5454
public List<String> requestHeader(HttpClientRequest httpClientRequest, String name) {
55+
if (httpClientRequest == null) {
56+
return Collections.emptyList();
57+
}
5558
String value = httpClientRequest.header(name);
5659
return value == null ? Collections.emptyList() : Collections.singletonList(value);
5760
}
5861

59-
@Nullable
60-
@Override
61-
public Long requestContentLength(HttpClientRequest httpClientRequest,
62-
@Nullable HttpClientResponse httpClientResponse) {
63-
return null;
64-
}
65-
66-
@Nullable
6762
@Override
68-
public Long requestContentLengthUncompressed(HttpClientRequest httpClientRequest,
69-
@Nullable HttpClientResponse httpClientResponse) {
70-
return null;
71-
}
72-
73-
@Override
74-
public Integer statusCode(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse) {
63+
public Integer statusCode(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse,
64+
Throwable error) {
65+
if (httpClientResponse == null) {
66+
return null;
67+
}
7568
return httpClientResponse.statusCode();
7669
}
7770

78-
@Nullable
79-
@Override
80-
public Long responseContentLength(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse) {
81-
return null;
82-
}
83-
84-
@Nullable
85-
@Override
86-
public Long responseContentLengthUncompressed(HttpClientRequest httpClientRequest,
87-
HttpClientResponse httpClientResponse) {
88-
return null;
89-
}
90-
9171
@Override
9272
public List<String> responseHeader(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse,
9373
String name) {
94-
String value = httpClientResponse.header(name);
95-
return value == null ? Collections.emptyList() : Collections.singletonList(value);
74+
if (httpClientResponse == null) {
75+
return Collections.emptyList();
76+
}
77+
try {
78+
String value = httpClientResponse.header(name);
79+
return value == null ? Collections.emptyList() : Collections.singletonList(value);
80+
}
81+
catch (Exception e) {
82+
return Collections.emptyList();
83+
}
9684
}
9785

9886
}

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

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -99,39 +99,12 @@ public List<String> requestHeader(HttpServerRequest httpServerRequest, String na
9999
return value == null ? Collections.emptyList() : Collections.singletonList(value);
100100
}
101101

102-
@Nullable
103-
@Override
104-
public Long requestContentLength(HttpServerRequest httpServerRequest,
105-
@Nullable HttpServerResponse httpServerResponse) {
106-
return null;
107-
}
108-
109-
@Nullable
110-
@Override
111-
public Long requestContentLengthUncompressed(HttpServerRequest httpServerRequest,
112-
@Nullable HttpServerResponse httpServerResponse) {
113-
return null;
114-
}
115-
116-
@Nullable
117102
@Override
118-
public Integer statusCode(HttpServerRequest httpServerRequest, HttpServerResponse httpServerResponse) {
103+
public Integer statusCode(HttpServerRequest httpServerRequest, HttpServerResponse httpServerResponse,
104+
Throwable error) {
119105
return httpServerResponse.statusCode();
120106
}
121107

122-
@Nullable
123-
@Override
124-
public Long responseContentLength(HttpServerRequest httpServerRequest, HttpServerResponse httpServerResponse) {
125-
return null;
126-
}
127-
128-
@Nullable
129-
@Override
130-
public Long responseContentLengthUncompressed(HttpServerRequest httpServerRequest,
131-
HttpServerResponse httpServerResponse) {
132-
return null;
133-
}
134-
135108
@Override
136109
public List<String> responseHeader(HttpServerRequest httpServerRequest, HttpServerResponse httpServerResponse,
137110
String name) {

0 commit comments

Comments
 (0)