3

我正在尝试将 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/一体机:最新

尽管如此,我还是无法在 jaeger-ui 中找到我的服务

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

请帮忙!!

4

1 回答 1

0

这似乎有点老了,而且很难说出什么是错的。我的第一个猜测是采样策略,因为 Jaeger 会在千分之一中采样一个迹线,但看起来你确实设置了它。

JAEGER_SAMPLER_TYPE=const JAEGER_SAMPLER_PARAM=1

我建议您首先使用一个简单的Configuration.fromEnv().getTracer()方法来获取您的示踪剂。然后,通过环境变量控制它,可能设置JAEGER_REPORTER_LOG_SPANStrue. 使用此选项,您应该能够在 Jaeger 发出跨度时在日志中看到。

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

于 2018-10-15T09:16:23.523 回答