在java dropwizard微服务上使用jaeger启用跟踪

iqxoj9l9  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(445)

我有一个基于微服务的应用程序在kubernetes上运行。微服务是使用dropwizard框架构建的。
我想启用跟踪,以便跟踪请求,并有一个解决方案,可以帮助调试的东西。
基本上,我知道使用springboot的实现非常简单。但我想知道它怎么会出现在基于dropwizard的应用程序中?事实上,这有可能吗?有人能分享他的经验吗?给我提供一些资源或者例子来说明我是如何做到的?
请确保我没有使用服务网。

pvabu6sv

pvabu6sv1#

我使用以下两个依赖项对服务启用了检测:

implementation "io.opentracing.contrib:opentracing-jaxrs2:1.0.0"
        implementation "io.jaegertracing:jaeger-client:1.4.0"

我使用jaeger客户端使用环境变量配置跟踪程序:

JAEGER_SERVICE_NAME: yourServiceName

获取跟踪程序示例:

public static Tracer jaegerTracer() {
        return Configuration.fromEnv()
                .getTracer();
    }

最后,在dropwizard应用程序中,您必须像这样注册跟踪程序

GlobalTracer.registerIfAbsent(jaegerTracer());
   jersey.register(new ServerTracingDynamicFeature());

    env.servlets()
           .addFilter("span-finisher", new SpanFinishingFilter())
           .addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");

相关问题