我在Centos 8下的Wildfly 23.0.1.Final(openjdk 11(上运行。
我在应用程序中根本没有使用opentrace,也没有添加任何jaeger依赖项。每当我查看日志时,我经常会得到一个excpetion(级别:Warn(,看起来如下:
> 021-04-28 15:08:29,875 WARN [io. .internal.reporters.RemoteReporter]
> (jaeger.RemoteReporter-QueueProcessor) FlushCommand execution failed!
> Repeated errors of this command will not be logged.:
> io.jaegertracing.internal.exceptions.SenderException: Failed to flush
> spans. at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.thrift.internal.senders.ThriftSender.flush(ThriftSender.java:115)
> at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.internal.reporters.RemoteReporter$FlushCommand.execute(RemoteReporter.java:160)
> at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.internal.reporters.RemoteReporter$QueueProcessor.run(RemoteReporter.java:182)
> at java.base/java.lang.Thread.run(Thread.java:834) Caused by:
> io.jaegertracing.internal.exceptions.SenderException: Could not send 1
> spans at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.thrift.internal.senders.UdpSender.send(UdpSender.java:85)
> at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.thrift.internal.senders.ThriftSender.flush(ThriftSender.java:113)
> ... 3 more Caused by:
> org.apache.thrift.transport.TTransportException: Cannot flush closed
> transport at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.thrift.internal.reporters.protocols.ThriftUdpTransport.flush(ThriftUdpTransport.java:148)
> at
> org.apache.thrift@0.13.0//org.apache.thrift.TServiceClient.sendBase(TServiceClient.java:73) at
> org.apache.thrift@0.13.0//org.apache.thrift.TServiceClient.sendBaseOneway(TServiceClient.java:66)
> at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.agent.thrift.Agent$Client.send_emitBatch(Agent.java:70)
> at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.agent.thrift.Agent$Client.emitBatch(Agent.java:63)
> at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.thrift.internal.senders.UdpSender.send(UdpSender.java:83)
> ... 4 more Caused by: java.net.PortUnreachableException: ICMP Port
> Unreachable at java.base/java.net.PlainDatagramSocketImpl.send(Native
> Method) at
> java.base/java.net.DatagramSocket.send(DatagramSocket.java:695) at
> io.jaegertracing.jaeger@1.5.0//io.jaegertracing.thrift.internal.reporters.protocols.ThriftUdpTransport.flush(ThriftUdpTransport.java:146)
> ... 9 more
这些消息填充了日志文件,我不知道如何禁用不需要的opentrace功能。我在谷歌上找不到关于这个奇怪的例外的东西。有人知道吗?
向致以最良好的问候
shane
如果不使用它,可以在CLI中执行以下操作:
/subsystem=microprofile-opentracing-smallrye/jaeger-tracer=jaeger:write-attribute(name=sampler-param, value=0)
另一个解决方案是删除opentraceing子系统,安装jaeger或等待WildFly的发布并修复https://issues.redhat.com/browse/WFLY-14625
您可以通过删除来禁用此功能
<subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger">
<jaeger-tracer name="jaeger">
<sampler-configuration sampler-type="const" sampler-param="1.0"/>
</jaeger-tracer>
</subsystem>
在standalone.xml 中
与wildfly并行,执行jaeger应用程序-一个具有适当端口配置的日志跟踪器。您可能会找到要运行的docker映像。