【发布时间】:2020-11-06 22:53:42
【问题描述】:
我正在开发 POC,并且能够将 2 个微服务与 JaegerUI 集成。
对 serviceA 中的端点的请求调用 serviceB 中的端点并返回响应。
我使用了以下依赖项:
spring.boot.version : 2.1.4.RELEASE
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-jaeger-web-starter</artifactId>
<version>3.1.1</version>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-cloud-starter</artifactId>
<version>0.4.0</version>
Spring 自动配置会处理所有事情,因此只需添加所需的属性:
opentracing.jaeger.http-sender.url
opentracing.jaeger.service-name
opentracing.jaeger.enabled
opentracing.spring.cloud.async.enabled
我想实现以下目标:
- 我想将应用程序日志添加到 span,以便它们在 JaegerUI 中可见。
- 我想为 span 标签添加一些字段,以便在 JaegerUI 中轻松搜索。
- 另外,我希望将 spanId 和 traceId 写入应用程序日志。
- 是否可以根据 spanId/traceId 在 JaegerUI 中进行搜索?如果是,怎么做?
基于以下 SO 问题中的答案:
How to enrich Jaeger opentracing data with the application logs (produced by slf4j) for Spring Boot?
opentracing-spring-cloud-starter 依赖项应该自动负责将应用程序日志发送到 JaegerUI 中。
我在 serviceA 中有如下日志语句:
logger.info("向serviceB发送请求");
但上面的日志没有在相应的范围内被捕获,并且在 JaegerUI 中不可见。
对如何实现上述场景的任何建议表示赞赏!
【问题讨论】:
标签: spring-boot jaeger opentracing