无法在jaeger ui中查看服务名称 - Java spring应用程序

时间:2018-01-24 13:41:31

标签: java spring jaeger

我正在尝试将jaeger跟踪集成到我的java spring应用程序中。 我在配置文件中添加了以下代码:

@Bean     public io.opentracing.Tracer jaegerTracer(){

    Sender sender = new HttpSender("http://localhost:14268/api/traces");
    com.uber.jaeger.Configuration.SenderConfiguration senderConfiguration = new com.uber.jaeger.Configuration
            .SenderConfiguration.Builder()
            .sender(sender)
            .build();

    return new com.uber.jaeger.Configuration("pilot-tracking",
            new com.uber.jaeger.Configuration.SamplerConfiguration(ProbabilisticSampler.TYPE, 1),
            new com.uber.jaeger.Configuration.ReporterConfiguration(sender)).getTracer();
}

并使用以下docker命令:

docker run -d -p 5775:5775 / udp -p 6831:6831 / udp -p 6832:6832 / udp -p 5778:5778 -p 16686:16686 -p 14268:14268 jaegertracing / all-in-one :最新

但是,我无法在jaeger-ui找到我的服务

点击此网址时: http://localhost:5778/?service=pilot-tracking 输出是: tcollector错误:tchannel错误ErrCodeBadRequest:没有服务“jaeger-collector”的处理程序和方法“SamplingManager :: getSamplingStrategy”

请帮助!!

1 个答案:

答案 0 :(得分:0)

这似乎有些陈旧,很难分辨出什么地方出了问题。我的第一个猜测将是采样策略,因为Jaeger会千分之一地采样痕迹,但看起来您确实设置了它。

JAEGER_SAMPLER_TYPE=const JAEGER_SAMPLER_PARAM=1

我建议您先使用简单的Configuration.fromEnv().getTracer()来获取跟踪器。然后,通过env vars对其进行控制,可能将JAEGER_REPORTER_LOG_SPANS设置为true。使用此选项,只要Jaeger发出跨度,您就应该能够在日志中看到。

您还可以为代理和收集器(在您的情况下为一体)设置--log-level=debug选项,以查看这些组件何时从客户端接收跨度。