В приложении весенней загрузки (на данный момент только одно) я включил jaeger, добавив зависимость opentracing-spring-jaeger-web-starter
и следующие bean-компоненты
@Bean
public static JaegerTracer getTracer() {
io.jaegertracing.Configuration.SamplerConfiguration samplerConfig =
io.jaegertracing.Configuration.SamplerConfiguration.fromEnv().withType("const").withParam(1);
io.jaegertracing.Configuration.ReporterConfiguration reporterConfig =
io.jaegertracing.Configuration.ReporterConfiguration.fromEnv().withLogSpans(true);
io.jaegertracing.Configuration config = new io.jaegertracing.Configuration("fooService").withSampler(samplerConfig).withReporter(reporterConfig);
return config.getTracer();
}
@PostConstruct
public void setProperty() {
System.setProperty("JAEGER_REPORTER_LOG_SPANS", "true");
}
После запуска Jaeger в докере docker run -d --name jaeger -p 16686:16686 -p 6831:6831/udp jaegertracing/all-in-one:1.9
получаются следы.
Теперь я нашел другую зависимость и прочитал разные руководства, из-за которых я почему-то не знал, как правильно использовать Jaeger с весенней загрузкой.
Какую зависимость я бы использовал?
https://github.com/opentracing-contrib/java-spring-cloud
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-cloud-starter</artifactId>
</dependency>
https://github.com/signalfx/tracing-examples/tree/master/jaeger-java-spring-boot-web
<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-jaeger-web-starter</artifactId>
</dependency>
Следуя документации Jaeger, возможно,
<dependency>
<groupId>io.jaegertracing</groupId>
<artifactId>jaeger-client</artifactId>
<version>$jaegerVersion</version>
</dependency>
хватило бы !?
Перед тем, как попробовать Jaeger, я использовал Zipkin, который очень легко интегрировать в Spring, так как есть стартер для сыщика. Журналы содержат идентификаторы трассировки и диапазона в отдельных полях, поэтому их можно искать, например. в Кибане. Jaeger не выполняет .
Можно ли это настроить, и если да, то как?
Возможно ли использовать Jaeger с Brave для инструментовки? Например, проект включает spring-cloud-starter-sleuth
как зависимость. Есть некоторые конфликты с уже существующими bean-компонентами. Можно ли вообще использовать Jaeger с храбростью?