Skip to content

Commit b997c0c

Browse files
committed
Add connect timeout properties for OTLP tracing
- Rename OtlpProperties to OtlpTracingProperties See gh-41460 See gh-42528
1 parent 40bb814 commit b997c0c

File tree

5 files changed

+47
-28
lines changed

5 files changed

+47
-28
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpTracingConfigurations.java

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

1717
package org.springframework.boot.actuate.autoconfigure.tracing.otlp;
1818

19-
import java.util.Map.Entry;
20-
2119
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
2220
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporterBuilder;
2321
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
2422
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporterBuilder;
2523

26-
import org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp.Transport;
2724
import org.springframework.boot.actuate.autoconfigure.tracing.ConditionalOnEnabledTracing;
2825
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2926
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -33,7 +30,7 @@
3330
import org.springframework.util.Assert;
3431

3532
/**
36-
* Configurations imported by {@link OtlpAutoConfiguration}.
33+
* Configurations imported by {@link OtlpTracingAutoConfiguration}.
3734
*
3835
* @author Moritz Halbritter
3936
* @author Eddú Meléndez
@@ -46,18 +43,18 @@ static class ConnectionDetails {
4643
@Bean
4744
@ConditionalOnMissingBean
4845
@ConditionalOnProperty(prefix = "management.otlp.tracing", name = "endpoint")
49-
OtlpTracingConnectionDetails otlpTracingConnectionDetails(OtlpProperties properties) {
46+
OtlpTracingConnectionDetails otlpTracingConnectionDetails(OtlpTracingProperties properties) {
5047
return new PropertiesOtlpTracingConnectionDetails(properties);
5148
}
5249

5350
/**
54-
* Adapts {@link OtlpProperties} to {@link OtlpTracingConnectionDetails}.
51+
* Adapts {@link OtlpTracingProperties} to {@link OtlpTracingConnectionDetails}.
5552
*/
5653
static class PropertiesOtlpTracingConnectionDetails implements OtlpTracingConnectionDetails {
5754

58-
private final OtlpProperties properties;
55+
private final OtlpTracingProperties properties;
5956

60-
PropertiesOtlpTracingConnectionDetails(OtlpProperties properties) {
57+
PropertiesOtlpTracingConnectionDetails(OtlpTracingProperties properties) {
6158
this.properties = properties;
6259
}
6360

@@ -82,29 +79,27 @@ static class Exporters {
8279
@Bean
8380
@ConditionalOnProperty(prefix = "management.otlp.tracing", name = "transport", havingValue = "http",
8481
matchIfMissing = true)
85-
OtlpHttpSpanExporter otlpHttpSpanExporter(OtlpProperties properties,
82+
OtlpHttpSpanExporter otlpHttpSpanExporter(OtlpTracingProperties properties,
8683
OtlpTracingConnectionDetails connectionDetails) {
8784
OtlpHttpSpanExporterBuilder builder = OtlpHttpSpanExporter.builder()
8885
.setEndpoint(connectionDetails.getUrl(Transport.HTTP))
8986
.setTimeout(properties.getTimeout())
87+
.setConnectTimeout(properties.getConnectTimeout())
9088
.setCompression(properties.getCompression().name().toLowerCase());
91-
for (Entry<String, String> header : properties.getHeaders().entrySet()) {
92-
builder.addHeader(header.getKey(), header.getValue());
93-
}
89+
properties.getHeaders().forEach(builder::addHeader);
9490
return builder.build();
9591
}
9692

9793
@Bean
9894
@ConditionalOnProperty(prefix = "management.otlp.tracing", name = "transport", havingValue = "grpc")
99-
OtlpGrpcSpanExporter otlpGrpcSpanExporter(OtlpProperties properties,
95+
OtlpGrpcSpanExporter otlpGrpcSpanExporter(OtlpTracingProperties properties,
10096
OtlpTracingConnectionDetails connectionDetails) {
10197
OtlpGrpcSpanExporterBuilder builder = OtlpGrpcSpanExporter.builder()
10298
.setEndpoint(connectionDetails.getUrl(Transport.GRPC))
10399
.setTimeout(properties.getTimeout())
100+
.setConnectTimeout(properties.getConnectTimeout())
104101
.setCompression(properties.getCompression().name().toLowerCase());
105-
for (Entry<String, String> header : properties.getHeaders().entrySet()) {
106-
builder.addHeader(header.getKey(), header.getValue());
107-
}
102+
properties.getHeaders().forEach(builder::addHeader);
108103
return builder.build();
109104
}
110105

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpTracingConnectionDetails.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.springframework.boot.actuate.autoconfigure.tracing.otlp;
1818

19-
import org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp.Transport;
2019
import org.springframework.boot.autoconfigure.service.connection.ConnectionDetails;
2120

2221
/**
Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
import java.util.HashMap;
2121
import java.util.Map;
2222

23-
import org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp.Compression;
24-
import org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp.Transport;
2523
import org.springframework.boot.context.properties.ConfigurationProperties;
2624

2725
/**
@@ -31,7 +29,7 @@
3129
* @since 3.1.0
3230
*/
3331
@ConfigurationProperties("management.otlp.tracing")
34-
public class OtlpProperties {
32+
public class OtlpTracingProperties {
3533

3634
/**
3735
* URL to the OTel collector's HTTP API.
@@ -46,6 +44,11 @@ public class OtlpProperties {
4644
*/
4745
private Duration timeout = Duration.ofSeconds(10);
4846

47+
/**
48+
* Connect timeout for the OTel collector connection.
49+
*/
50+
private Duration connectTimeout = Duration.ofSeconds(10);
51+
4952
/**
5053
* Transport used to send the spans.
5154
*/
@@ -77,6 +80,14 @@ public void setTimeout(Duration timeout) {
7780
this.timeout = timeout;
7881
}
7982

83+
public Duration getConnectTimeout() {
84+
return this.connectTimeout;
85+
}
86+
87+
public void setConnectTimeout(Duration connectTimeout) {
88+
this.connectTimeout = connectTimeout;
89+
}
90+
8091
public Transport getTransport() {
8192
return this.transport;
8293
}
@@ -101,4 +112,18 @@ public void setHeaders(Map<String, String> headers) {
101112
this.headers = headers;
102113
}
103114

115+
public enum Compression {
116+
117+
/**
118+
* Gzip compression.
119+
*/
120+
GZIP,
121+
122+
/**
123+
* No compression.
124+
*/
125+
NONE
126+
127+
}
128+
104129
}
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,24 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.opentelemetry.otlp;
17+
package org.springframework.boot.actuate.autoconfigure.tracing.otlp;
1818

1919
/**
20-
* Algorithm used to compress OTLP data.
20+
* Transport used to send OTLP data.
2121
*
2222
* @author Moritz Halbritter
2323
* @since 3.4.0
2424
*/
25-
public enum Compression {
25+
public enum Transport {
2626

2727
/**
28-
* Gzip compression.
28+
* HTTP transport.
2929
*/
30-
GZIP,
30+
HTTP,
3131

3232
/**
33-
* No compression.
33+
* gRPC transport.
3434
*/
35-
NONE
35+
GRPC
3636

3737
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
*/
1616

1717
/**
18-
* Auto-configuration for tracing with OTLP.
18+
* Auto-configuration for exporting traces with OTLP.
1919
*/
2020
package org.springframework.boot.actuate.autoconfigure.tracing.otlp;

0 commit comments

Comments
 (0)