4

我在 Docker 中安装了 jaeger,其中:

docker run --rm --name jaeger -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p  16686:16686 -p 14267:14267 -p 14268:14268 -p 9411:9411 jaegertracing/all-in-one:1.7   

下面是我如何初始化跟踪器和跨度的示例代码。我在控制台中获得了日志,但它没有反映在我的 Jaeger UI 中。

谁能帮我解决这个问题?

logging = new LoggingReporter();

SamplerConfiguration sampler = new SamplerConfiguration();
sampler.withType("const");
sampler.withParam(1);

ReporterConfiguration reporter = new ReporterConfiguration();
reporter.withLogSpans(true);
reporter.withSender(sender);        

tracer = Configuration.fromEnv("sample_jaeger").withSampler(sampler).withReporter(reporter).getTracer();

Scope scope = tracer.buildSpan("parent-span").startActive(true);
Tags.SAMPLING_PRIORITY.set(scope.span(), 1);
scope.span().setTag("this-is-test", "YUP");

logging.report((JaegerSpan) scope.span());
4

1 回答 1

2

您是否正在关闭跟踪器和范围?如果您使用的是 0.32.0 之前的版本,则应tracer.close()在进程终止之前手动调用,否则缓冲区中的 span 可能不会被调度。

至于范围,通常将其包装在 try-with-resources 语句中:

try (Scope scope = tracer.buildSpan("parent-span").startActive(true)) {
  Tags.SAMPLING_PRIORITY.set(scope.span(), 1);
  scope.span().setTag("this-is-test", "YUP");

  logging.report((JaegerSpan) scope.span());
}

您可能还想查看https://github.com/yurishkuro/opentracing-tutorial上的 OpenTracing 教程或https://www.katacoda.com/courses/opentracing上基于 Katacoda 的版本

- 编辑

并部署在不同的主机名和端口上

然后你需要告诉跟踪器将跟踪发送到哪里。导出JAEGER_ENDPOINT环境变量,指向收集器端点,或设置JAEGER_AGENT_HOST/ JAEGER_AGENT_PORT,以及代理的位置。您可以在以下 URL 上检查您的客户端可用的环境变量:https ://www.jaegertracing.io/docs/1.7/client-features/

于 2018-10-19T14:34:17.577 回答