Comments (6)
@almogtavor, first you can try replacing ReactiveKafkaProducerTemplate
by KafkaSender
. This allows to confiure metrics and observation. Will be available on upcoming Reactor Kafka release.
@Bean
public SenderOptions<String, OutputPojo> kafkaProducerOptions(
@Value("${spring.kafka.consumer.topic}") String outputTopic,
KafkaProperties properties) {
Map<String, Object> props = properties.buildProducerProperties();
return SenderOptions.create(props);
}
@Bean
public KafkaSender<String, OutputPojo> kafkaSender(
SenderOptions<String, OutputPojo> kafkaSenderOptions,
ObservationRegistry registry) {
return KafkaSender.create(kafkaSenderOptions
.withObservation(registry));
}
Beside this using libs on your sample project look slightly outdated. Not sure if this still fits together...
from reactor-kafka.
upvoting this
from reactor-kafka.
@janchristian-haddorp thank you very much. I didn't know about the .withObservation
method so I'll try it and update my deps to boot 3 etc. Can you refer to my 3 points I struggled with? Have you tried tracing the parallel scheduler? Buffers?
from reactor-kafka.
See an Observation support in the upcoming release: https://github.com/reactor/reactor-kafka/blob/main/src/docs/asciidoc/api-guide.adoc#micrometer-observation.
The rest of questions about parallel scheduler and buffers are out of this project scope.
See general Reactor docs:
https://projectreactor.io/docs/core/release/reference/#_observation
https://projectreactor.io/docs/core/release/reference/#context.propagation
The Otel API is definitely out of our reach at all.
Not sure what else you would like to see from the scope of this project...
from reactor-kafka.
@artembilan what is the usage of "user.receiver" inside KafkaRecordReceiverContext? (https://github.com/reactor/reactor-kafka/blob/main/src/docs/asciidoc/api-guide.adoc#micrometer-observation)
from reactor-kafka.
See KafkaRecordReceiverContext
source code: https://github.com/reactor/reactor-kafka/blob/main/src/main/java/reactor/kafka/receiver/observation/KafkaRecordReceiverContext.java#L37
So, that is a receiverId
- a unique id for the reactor.kafka.client.id
tag in the target span.
Logical identifier of your Reactor Kafka service.
from reactor-kafka.
Related Issues (20)
- GH-321 / PR 325 - Observation propagation HOT 4
- GH-321 / PR 325 - No trace observed in neither log, neither trace aggregation system HOT 10
- Rebalancing always waits until maxDelayRebalance with AckMode.EXACTLY_ONCE
- GH-321 / PR 325 - Observation propagation issue, traces are the same while it should not HOT 4
- Allow SenderRecord to take into account existing Observation HOT 13
- ClassCastException on attempt to get bootstrap server from SenderOption/ReceiverOptions HOT 3
- Reactive kafka consumer doesn't pause on calling the consumer.pause() method
- Metrics reactor_{receiver|sender}_active{sum|count|bucket} always shows 0 HOT 1
- Provide option for KafkaReceiver's graceful shutdown HOT 3
- Expose KafkaConsumer in ReceiverOptionsCustomizer.addAssignListener() - parity with KafkaBindingRebalanceListener
- Multiple kafka Consumers in Same Consumer Group receiving same messages
- Micrometer tracing context propagation problem HOT 1
- Reactor Kafka Producer Not Following Round Robin Assignment
- Application Pod Crashed: Kafka Producer Exhausted 3GB Heap Memory When Broker Failed
- Consumption stopped with slow consumer HOT 2
- reactor.kafka.receiver.internals.MockReceiverTest > consumerMethods FAILED
- Not able to build the project from source
- Adding doOnSubscribe directly on receiveAutoAck breaks tracing propagation
- Kafka interceptor with Micrometer Observation
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reactor-kafka.