-
Couldn't load subscription status.
- Fork 41.6k
Closed as not planned
Closed as not planned
Copy link
Description
This is potentially a duplicate of #47785, though not sure.
Up until and including 4.0.0-M3, when running a test, Spring Boot did not automatically try to publish OTLP metrics. However on 4.0.0-RC1 it tries to do that:
2025-10-26T21:58:31.722+02:00 WARN 15263 --- [ionShutdownHook] [ ] i.m.registry.otlp.OtlpMeterRegistry : Failed to publish metrics to OTLP receiver (context: url=http://localhost:4318/v1/metrics, resource-attributes={service.name=unknown_service})
java.lang.Exception: java.net.ConnectException: Connection refused
at io.micrometer.registry.otlp.OtlpHttpMetricsSender.send(OtlpHttpMetricsSender.java:61) ~[micrometer-registry-otlp-1.16.0-RC1.jar:1.16.0-RC1]
at io.micrometer.registry.otlp.OtlpMeterRegistry.publish(OtlpMeterRegistry.java:190) ~[micrometer-registry-otlp-1.16.0-RC1.jar:1.16.0-RC1]
at io.micrometer.core.instrument.push.PushMeterRegistry.publishSafelyOrSkipIfInProgress(PushMeterRegistry.java:63) ~[micrometer-core-1.16.0-RC1.jar:1.16.0-RC1]
at io.micrometer.core.instrument.push.PushMeterRegistry.close(PushMeterRegistry.java:143) ~[micrometer-core-1.16.0-RC1.jar:1.16.0-RC1]
at io.micrometer.registry.otlp.OtlpMeterRegistry.close(OtlpMeterRegistry.java:305) ~[micrometer-registry-otlp-1.16.0-RC1.jar:1.16.0-RC1]
at org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration$MeterRegistryCloser.onApplicationEvent(MetricsAutoConfiguration.java:113) ~[spring-boot-micrometer-metrics-4.0.0-RC1.jar:4.0.0-RC1]
at org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration$MeterRegistryCloser.onApplicationEvent(MetricsAutoConfiguration.java:101) ~[spring-boot-micrometer-metrics-4.0.0-RC1.jar:4.0.0-RC1]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180) ~[spring-context-7.0.0-RC2.jar:7.0.0-RC2]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173) ~[spring-context-7.0.0-RC2.jar:7.0.0-RC2]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151) ~[spring-context-7.0.0-RC2.jar:7.0.0-RC2]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:447) ~[spring-context-7.0.0-RC2.jar:7.0.0-RC2]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:380) ~[spring-context-7.0.0-RC2.jar:7.0.0-RC2]
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1159) ~[spring-context-7.0.0-RC2.jar:7.0.0-RC2]
at org.springframework.boot.web.server.reactive.context.ReactiveWebServerApplicationContext.doClose(ReactiveWebServerApplicationContext.java:158) ~[spring-boot-web-server-4.0.0-RC1.jar:4.0.0-RC1]
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1122) ~[spring-context-7.0.0-RC2.jar:7.0.0-RC2]
at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:147) ~[spring-boot-4.0.0-RC1.jar:4.0.0-RC1]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:116) ~[spring-boot-4.0.0-RC1.jar:4.0.0-RC1]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: java.net.ConnectException: Connection refused
at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:592) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:751) ~[na:na]
at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:178) ~[na:na]
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:531) ~[na:na]
at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:636) ~[na:na]
at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:280) ~[na:na]
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:386) ~[na:na]
at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:408) ~[na:na]
at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1319) ~[na:na]
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1252) ~[na:na]
at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1138) ~[na:na]
at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1067) ~[na:na]
at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1461) ~[na:na]
at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1432) ~[na:na]
at io.micrometer.core.ipc.http.HttpUrlConnectionSender.send(HttpUrlConnectionSender.java:99) ~[micrometer-core-1.16.0-RC1.jar:1.16.0-RC1]
at io.micrometer.core.ipc.http.HttpSender$Request$Builder.send(HttpSender.java:306) ~[micrometer-core-1.16.0-RC1.jar:1.16.0-RC1]
at io.micrometer.registry.otlp.OtlpHttpMetricsSender.send(OtlpHttpMetricsSender.java:58) ~[micrometer-registry-otlp-1.16.0-RC1.jar:1.16.0-RC1]
... 18 common frames omitted
I have minimal examples with M3 and RC1.
Turning on debug: true I observe a difference with management.defaults.metrics.export.enabled, on M3:
OtlpMetricsExportAutoConfiguration:
Did not match:
- @ConditionalOnEnabledMetricsExport management.defaults.metrics.export.enabled is considered false (OnMetricsExportEnabledCondition)
Matched:
- @ConditionalOnClass found required classes 'io.micrometer.registry.otlp.OtlpMeterRegistry', 'org.springframework.boot.opentelemetry.autoconfigure.OpenTelemetryProperties' (OnClassCondition)
And on RC1:
OtlpMetricsExportAutoConfiguration matched:
- @ConditionalOnClass found required classes 'io.micrometer.registry.otlp.OtlpMeterRegistry', 'org.springframework.boot.opentelemetry.autoconfigure.OpenTelemetryProperties' (OnClassCondition)
- @ConditionalOnEnabledMetricsExport management.defaults.metrics.export.enabled is considered true (OnMetricsExportEnabledCondition)
- @ConditionalOnBean (types: io.micrometer.core.instrument.Clock; SearchStrategy: all) found bean 'micrometerClock' (OnBeanCondition)
I was not able to get further than this, as I don't see the property having changed between the two releases.
Metadata
Metadata
Assignees
Labels
No labels