с обычным пружинным проектом Kafka + Micrometer < /p>
Код: Выделить всё
@Bean
public KafkaTemplate kafkaTemplate(ProducerFactory producerFactory) {
KafkaTemplate t = new KafkaTemplate(producerFactory);
t.setObservationEnabled(true);
t.setObservationConvention(new KafkaTemplateObservationConvention() {
@Override
public KeyValues getLowCardinalityKeyValues(KafkaRecordSenderContext context) {
return KeyValues.of("topic", context.getDestination(),
"id", String.valueOf(context.getRecord().key()));
}
});
return t;
}
< /code>
template.send(topic, info.getId(), info);
< /code>
или реактор Kafka Project + Micrometer < /p>
@Bean
public KafkaSender kafkaSender(ObservationRegistry observationRegistry) {
final Map properties = new ConcurrentHashMap();
properties.put(...);
final SenderOptions senderOptions = SenderOptions.create(properties);
return KafkaSender.create(senderOptions.withObservation(observationRegistry));
}
< /code>
kafkaSender.send(...
< /code>
Мне удалось отправить следы. В то время как я вижу, как посылается трассировку (в любой распределенной системе агрегаторов, например, Zipkin), фактический результат кажется очень странным. Это то, что я могу видеть в теме: < /p>
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic quickstart-events --property print.key=true --property print.headers=true
< /code>
traceparent, 00-8B8501B4CF91D41FED3E7348452D7119-89BB34C5CDE2A6D1-01, __typeid__, sometype
Подробнее здесь: https://stackoverflow.com/questions/795 ... ring-kafka