【问题标题】:how disable remoteReporter in quarkus-smallrye-opentracing如何在 quarkus-smallrye-opentracing 中禁用 remoteReporter
【发布时间】:2021-05-11 03:36:55
【问题描述】:

请求说明:
我想禁用 jaeger 客户端 remoteReporter,我不需要发送到代理,因为 istio 可以做到。

试过了:
在我的 application.properties 中添加quarkus.jaeger.sender-factory prop 但是我没有幸运,在源代码中使用这个道具时找不到。

环境信息:

java 版本:1.8.
quarkus 版本:1.13.2.Final

示例项目
GitLab link

【问题讨论】:

  • 所以您本质上不想让应用程序执行任何跟踪?
  • 不,我需要跟踪和传播跟踪标头,我只想禁用报告器。我的应用程序部署在 k8s 环境中,在我的情况下,应用程序未知代理主机。 istio 将负责报告。

标签: java quarkus jaeger opentracing smallrye


【解决方案1】:

似乎确定要使用的发件人的io.jaegertracing.internal.senders.SenderResolver 已损坏,这就是为什么没有考虑quarkus.jaeger.sender-factory

实现您想要的一种方法是添加一个服务加载器文件,即添加一个名为 resources/META-INF/services/io.jaegertracing.spi.SenderFactory 的文件,其中包含这一行:

io.jaegertracing.internal.senders.NoopSenderFactory

【讨论】:

  • 我尝试了该解决方案并使用调试模式检查。但这对我不起作用。我创建的示例项目可以在问题上下文时重现问题。你能帮我看看吗?
  • 我发现了一些坏消息,T__T gitmemory.com/issue/quarkusio/quarkus/15799/803531912
  • 当然。我试过了,它对我有用,所以你有一个复制器,只需在原始问题中提及,我会看看
【解决方案2】:

尝试在 pom 中排除 jaeger-thrift,如下所示:

    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-smallrye-opentracing</artifactId>
        <exclusions>
            <exclusion>
                <groupId>io.jaegertracing</groupId>
                <artifactId>jaeger-thrift</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

我在日志中看到的只是一个关于“没有可用的发件人工厂。使用 NoopSender”的警告。

如果您像之前的答案一样在 meta-inf/services 中添加文件,您将不会收到我描述的任何警告。

【讨论】:

    猜你喜欢
    • 2021-11-19
    • 2022-01-20
    • 2019-08-28
    • 2021-03-11
    • 2021-06-07
    • 1970-01-01
    • 2022-12-18
    • 2020-05-03
    • 2021-01-10
    相关资源
    最近更新 更多