Spring Cloud Sleuth跟踪头是否像这里描述的RabbitMq和Kafka那样被注入到Spring Cloud Stream Kinesis消息中?我们有一个REST控制器,它在处理POST请求之后,但在向客户机发送响应之前,向Kinesis发送一个Avro消息,该消息使用Spring Cloud Stream Kinesis总结事务。我想确保在REST控制器中启动的跟踪id被传播到Spring Cloud Stream Kinesis消息中,我不确定如何配置它,或者框架是否支持它。当我在处理这个Avro消息的微服务中记录消息和头时,我会看到一个不同的跟踪ID(当然还有span ID)。在REST控制器到Kinesis消息上下文之间的传播似乎没有正确配置和/或工作。
我们目前使用的是Spring Cloudhoxton.sr10
、Spring Boot2.3.9.release
和Spring Cloud Kinesis2.0.1.release
。
顺便说一句,我尝试将Spring Cloud Kinesis升级到2.0.2.release
、2.0.3.release
和2.0.4.release
,但每次升级绑定器时都会遇到错误。我不确定Spring Cloud、Spring Boot和Spring Cloud Stream Kinesis的版本组合是什么。
示例代码
@PostMapping(
value = "/accountEntry",
consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE},
produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
public ResponseEntity<Confirmation> createAccountEntry(
@RequestBody final AccountEntry accountEntry,
final HttpServletRequest request) {
final AccountEntryEvent accountEntryEvent =
new AccountEntryEvent(convertToAvro(accountEntry), AccountEntryEventType.CREATE_ACCOUNT_ENTRY);
accountEntryChannels
.accountEntryRequest()
.send(
MessageBuilder.withPayload(accountEntryEvent)
.build());
final Confirmation confirmation = buildConfirmation();
final EntityModel<Confirmation> confirmationEntityModel =
new EntityModel<>(confirmation);
return new ResponseEntity<>(confirmationEntityModel, HttpStatus.ACCEPTED);
}
// with a brave.Tracer instance autowired, I'm able to obtain the trace id as follows
protected String getTraceId() {
return tracer.currentSpan().context().traceIdString();
}
@Component
public interface AccountEntryChannels {
@Output("account-entry-request")
SubscribableChannel accountEntryRequest();
...
}
如果您通过StreamBinder
或MessageChannel
使用它,它应该可以工作;如果您以函数方式使用它(Supplier
+BlockingQueue
)它不应该,则不支持函数方式。
我的一些微服务使用log4j2作为记录器。Spring cloud Sleuth支持logback。在这个场景中,我如何使用Sleuth来获得分布式跟踪。我明白用log4j2使用sleuth,我必须实现某些类。我试过了,但没有运气。请帮忙
我正在使用在日志文件中生成和。我可以使用版本。我尝试过使用,但无法使用版本。按照3.0。1文档中,他们已经删除了旧的MDC条目,但是 特雷赛德 我已尝试在zipkin上查看此请求的跟踪,并能够使用traceid和spanid查看它: 有人可以帮助我得到Traceid和spanid在日志文件使用logback/log4j?
有必要为进入控制台日志的所有内容生成一个span id,但不幸的是,没有生成span id: 应用程序.yml logback.xml 为显式调用的日志记录方法生成span id:
我正在使用spring-cloud-sleuth为http请求、rabbitMQ消息和sheduled事件的日志添加相关id。添加依赖项后,应用程序的启动时间增加了50%。所有其他配置属性,如spring.sleuth.async.enabled和spring.sleuth.grpc.enabled的默认值为true。如果我想减少我的应用程序启动时间,我需要在我的应用程序属性文件中将所有这些都过期
Spring Cloud Kafka Streams与Spring Cloud Stream、Spring Cloud Function、Spring AMQP和Spring for Apache Kafka有什么区别?
我正在使用侦探,我想知道是否有可能获得当前的跟踪ID?我不需要添加任何响应或任何东西。我只是想要跟踪ID的电子邮件提醒开发团队在某些情况下。