【问题标题】:Spring Boot application with Jaeger使用 Jaeger 的 Spring Boot 应用程序
【发布时间】:2022-01-03 20:53:06
【问题描述】:

我正在使用下面的 GitHub 链接来设置带有 Jaeger 的 opentracing 对于托管在 kubernetes env 中的微服务,它适用于 Jenkins 等 Java 应用程序。 https://github.com/lucas-matt/auto-tracing-webhook

https://medium.com/opentracing/opentracing-on-kubernetes-get-yer-tracing-for-free-7a69cca03c8a

但是,当我尝试为任何 Spring Boot 应用程序设置跟踪时,它不会在 Jaeger UI 中显示任何跟踪。

经过一番研究,我发现我需要添加一些启动代码来跟踪下面 GitHub 中给出的 Spring Boot 应用程序。但是我现在很困惑,在哪里添加这个启动代码。

https://github.com/opentracing-contrib/java-spring-jaeger

我正在使用下面的代理进行跟踪,似乎我需要在这里为 Spring Boot 添加一些标志,但我没有得到确切的结果。

JAVA_AGENT = ' -javaagent:/mnt/auto-trace/opentracing-specialagent-1.7.0.jar -Dsa.tracer=jaeger -Dsa.log.level=FINE'

请推荐!

【问题讨论】:

  • 根据那些文档,您只需将其添加到您的 build.gradlepom.xml 即可。
  • 您要我修改我要跟踪的应用程序的 pom.xml / build.gradle 吗?

标签: spring-boot kubernetes jaeger opentracing


【解决方案1】:

几年前我曾与 Jaeger 和 springboot 一起工作。在 dockerized 环境中,我记得您必须为应用程序提供一些环境变量,例如:

JAEGER_AGENT_HOST=jaeger-agent.example.io
JAEGER_AGENT_PORT=5775
JAEGER_SAMPLER_TYPE=const
JAEGER_SAMPLER_PARAM=1
JAEGER_SAMPLER_MANAGER_HOST_PORT=jaeger-agent.example.io:5778
JAEGER_REPORTER_LOG_SPANS=true

然后,你需要定义 bean:

@Bean
public io.opentracing.Tracer jaegerTracer() {
  return new com.uber.jaeger.Configuration("myApp")
    .withSampler(SamplerConfiguration.fromEnv())
    .withReporter(ReporterConfiguration.fromEnv())
    .getTracer();
}

【讨论】:

  • 我已经定义了这些,但它没有提供 springboot 功能。
  • 我找到了我的旧项目,我忘了提一个配置。我已经更新了上面的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 2018-11-24
  • 1970-01-01
  • 2020-07-23
  • 2016-07-01
  • 1970-01-01
相关资源
最近更新 更多