当前位置: 首页 > 知识库问答 >
问题:

使用Jaeger跟踪Java应用程序时出错

弓嘉纳
2023-03-14

我有一个简单的Java应用程序,我想用Jaeger测试跟踪,但遇到了错误。

Maven依赖-

        <dependency>
            <groupId>io.opentracing</groupId>
            <artifactId>opentracing-api</artifactId>
            <version>0.32.0</version>
        </dependency>
        <dependency>
            <groupId>io.jaegertracing</groupId>
            <artifactId>jaeger-client</artifactId>
            <version>1.0.0</version>
        </dependency>

jaeger一体机-

docker run -d --name jaeger \
    -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
    -p 5775:5775/udp \
    -p 6831:6831/udp \
    -p 5778:5778 \
    -p 16686:16686 \
    -p 14268:14268 \
    -p 9411:9411 \
    jaegertracing/all-in-one:1.6

这是代码-

    public static void main(final String[] args) {

        System.setProperty(Configuration.JAEGER_SAMPLER_TYPE, ConstSampler.TYPE);
        System.setProperty(Configuration.JAEGER_SAMPLER_PARAM, "1");
        System.setProperty(Configuration.JAEGER_SERVICE_NAME, "test-1");

        Span span = Configuration.fromEnv().getTracer().buildSpan("test-hello").start();
        span.setTag("test-Tag", "test-value");

        span.log("test log");

        span.finish();

    }

我犯了个错误-

INFO: Initialized tracer=JaegerTracer(version=Java-1.0.0, serviceName=test-1, reporter=RemoteReporter(sender=UdpSender(), closeEnqueueTimeout=1000), sampler=ConstSampler(decision=true, tags={sampler.type=const, sampler.param=true}), tags={hostname=ADURAI-mac, jaeger.version=Java-1.0.0, ip=192.168.1.3}, zipkinSharedRpcSpan=false, expandExceptionLogs=false, useTraceId128Bit=false)
Exception in thread "main" java.lang.AbstractMethodError: io.opentracing.util.ThreadLocalScopeManager.activeSpan()Lio/opentracing/Span;
    at io.jaegertracing.internal.JaegerTracer$SpanBuilder.start(JaegerTracer.java:440)
    at io.adurai.kafka.producer.Main.main(Main.java:44)

感谢任何帮助!

共有1个答案

公羊安怡
2023-03-14

这是由于直升机依赖。

https://helidon.io/docs/latest/#/guides/03_quickstart-议员

此外,我还必须将opentracing api升级到0.33.0版本

 类似资料:
  • Jaeger跟踪沙箱演示使用Jaeger作为跟踪服务程序,为Envoy请求跟踪提供能力。这个沙盒与上面描述的前端代理架构非常类似,但有一点不同:在返回请求响应之前,service1对service2进行API调用。这三个容器将被部署在名为envoymesh的虚拟网络中。 所有的请求都通过前端Envoy代理进行路由,该Envoy充当位于envoymesh网络边缘的反向代理角色。通过docker co

  • 我使用Spring Boot开发了一条Camel路线。现在我想使用Jaeger跟踪路线。我尝试此示例使用组件跟踪路线,但我无法获取Jaeger的踪迹。 我只能在控制台中看到它。我不清楚的一件事是在哪里添加Jaeger URL?任何工作示例都会很有帮助。

  • 我正在使用这个库(grpc spring boot starter),所以我可以在spring boot应用程序中使用grpc功能。 我想知道如何正确地将其与Istio Jaeger跟踪集成。 我需要知道发生这种情况所需的依赖关系是什么。 我有两(2)个应用程序,一个用作gRPC客户端,一个用作gRPC服务器, 期望gRPC客户端和gRPC服务器之间的跟踪必须反映在Jaeger中。但是这并没有发生

  • 我需要跟踪所有安装的应用程序在android操作系统中的使用时间,包括java。例如,此应用程序非常相似:https://play.google.com/store/apps/details?id=com.agrvaibhav.AppUsageTracking 有办法做到这一点吗?

  • 我正在尝试设置一个使用Jaeger/Prometheus的Spring应用程序。我已经通过prometheus.yaml文件成功配置了Prometheus,但我不明白如何配置Jaeger目标endpoint。我必须创建一个新的yaml文件并在其中指定配置吗?如果是,使用哪种语法?

  • 我试图在前端应用程序中跟踪。 我不能使用@opentelemetry/exporter jaeger,因为我认为它是用于节点的。仅限js后端应用程序。 所以我尝试使用@opentelemetry/exporter-collector。 首先,我尝试在浏览器控制台中打印跟踪数据。下面的代码成功打印了跟踪数据。 现在我想把它们转发给杰格。 我正在运行机甲猎人一体机 基于Jaeger port文档,我可