我正在尝试将 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/一体机:最新
尽管如此,我还是无法在积家UI中找到我的服务
点击此网址后:http://localhost:5778/?service=pilot-tracking输出为 :tcollector 错误:tchannel 错误 ErrCodeBadRequest:服务"jaeger-collector"和方法"SamplingManager::getSamplingStrategy"没有处理程序
请帮忙!!
这似乎有点旧,很难说出了什么问题。我的第一个猜测是采样策略,因为Jaeger对一千个轨迹中有一个样本,但看起来你确实设置了它。
JAEGER_SAMPLER_TYPE=const
JAEGER_SAMPLER_PARAM=1
我建议您首先使用一个简单的Configuration.fromEnv().getTracer()
来获取示踪剂。然后,通过 env vars 控制它,可能将JAEGER_REPORTER_LOG_SPANS
设置为 true
.使用此选项,您应该能够在 Jaeger 发出跨度时在日志中看到。
您还可以将--log-level=debug
选项设置为代理和收集器(或一体式,在您的情况下(,以查看这些组件何时从客户端接收范围。