更新 Spring Boot Parent 后 PortUnreachableExceptions 垃圾邮件日志

jqn*_*qno 10 java spring-boot micrometer

spring-boot-parent版本 2.5.5 升级到 2.6.0 后,我开始看到这些错误消息充斥着日志:

[INFO] [stdout] 2022-01-11 13:40:01.157 WARN 76859 --- [ udp-epoll-2] i.m.s.reactor.netty.channel.FluxReceive : [6d1243de, L:/127.0.0.1:58160 - R:localhost/127.0.0.1:8125] An exception has been observed post termination, use DEBUG level to see the full stack: java.net.PortUnreachableException: readAddress(..) failed: Connection refused

使用DEBUG级别:

[INFO] [stdout] 2022-01-11 13:38:29.733  WARN 76479 --- [    udp-epoll-2] i.m.s.reactor.netty.channel.FluxReceive  : [43aad7ce, L:/127.0.0.1:38108 - R:localhost/127.0.0.1:8125] An exception has been observed post termination
[INFO] [stdout] 
[INFO] [stdout] java.net.PortUnreachableException: readAddress(..) failed: Connection refused
[INFO] [stdout]     at io.micrometer.shaded.io.netty.channel.epoll.EpollDatagramChannel.translateForConnected(EpollDatagramChannel.java:575)
[INFO] [stdout]     at io.micrometer.shaded.io.netty.channel.epoll.EpollDatagramChannel.access$400(EpollDatagramChannel.java:56)
[INFO] [stdout]     at io.micrometer.shaded.io.netty.channel.epoll.EpollDatagramChannel$EpollDatagramChannelUnsafe.epollInReady(EpollDatagramChannel.java:503)
[INFO] [stdout]     at io.micrometer.shaded.io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)
[INFO] [stdout]     at io.micrometer.shaded.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
[INFO] [stdout]     at io.micrometer.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
[INFO] [stdout]     at io.micrometer.shaded.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[INFO] [stdout]     at io.micrometer.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[INFO] [stdout]     at java.base/java.lang.Thread.run(Thread.java:833)
[INFO] [stdout] Caused by: io.micrometer.shaded.io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection refused
Run Code Online (Sandbox Code Playgroud)

除了似乎相关的依赖项升级之外,我在发行说明中找不到太多相关信息:

升级到微米 1.8.0 #28516

但链接的问题没有提供任何信息。Micronaut 自己的1.8.0 版本发行说明也不是(除了 JVM 崩溃通知,我们确实遇到了这一情况 - 升级 Spring Boot 的一个令人惊讶且相当不幸的副作用,但我离题了)

我们不(有意识地)使用Micrometer,所以我尝试在application.yml文件(micrometer.enabled: falseinstrumentation.micrometer.enabled: false)中禁用它,但无济于事。

尽管进行了大量的谷歌搜索(针对错误消息元素的各种排列并挖掘 GitHub 上的代码),我仍然无法找到如何修复此消息,更不用说找出导致它的原因了。

现在我当然可以在日志记录配置中抑制此消息,但我想知道它实际上试图在这里实现什么,以及它对我们的应用程序是否有用。如果没有,请完全禁用它。

jav*_*bie 13

假设你这边没有使用和配置 statsd,因为它指向 localhost,你可以通过设置来禁用它

management.metrics.export.statsd.enabled
Run Code Online (Sandbox Code Playgroud)

为假

  • 此属性路径在 boot >=3.0.5 中已弃用。替换为management.statsd.metrics.export.enabled (5认同)

Ton*_*sic 11

对于到达这里的任何人,如果您从 Spring Boot 2 迁移到 3,应用程序属性发生了变化,从

management.metrics.export.<your-integration>.*

management.<your-integration>.metrics.export.*

因此,您可能需要在资源文件中修复该问题。

来源

  • 也如此处所述https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0.0-Configuration-Changelog (2认同)