Skip to content

support per-record observations in batch listeners #3944

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

igormq
Copy link

@igormq igormq commented Jun 4, 2025

Don't know if i am doing the right approach here, but.

  • support per-record observations in batch listeners
  • document recordObservationsInBatch container property
  • describe new option in the change history
  • add integration test for per-record observations

Related to #3872 (comment)

@igormq igormq force-pushed the codex/fix-issue-with-kafka-header-extraction branch from df42ec9 to 351e874 Compare June 4, 2025 16:30
document recordObservationsInBatch container property
describe new option in the change history
add integration test for per-record observations

Signed-off-by: Igor Macedo Quintanilha <[email protected]>
@igormq igormq force-pushed the codex/fix-issue-with-kafka-header-extraction branch from 351e874 to 46a21b6 Compare June 4, 2025 16:31
@sobychacko
Copy link
Contributor

@igormq Thank you for the PR. We will do a detailed review soon. But, please add your name as an author to the classes you modified. Also, make the modifications in the ref docs directly and then add a short sentence about it in the whats-new doc. The change history is only for previous versions. Thanks!

Copy link
Member

@artembilan artembilan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for looking into this!
Not easy task to tackle.
Hope you'll find my review as reasonable.

}
throw e;
}
finally {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we switch to Observe.observe(), then there is no need for this finally block as observe() will implicitly do that for you.

if (!isListenerAdapterObservationAware()) {
// Stop observations
for (Observation observation : observations) {
observation.stop();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to stop when using observe().

@sobychacko
Copy link
Contributor

@igormq Thank you for this PR. Implementing observability with batch listeners is not trivial, and I think you laid good foundations here. Providing this as an optional feature is very important, as we don't want to impose observability by default in all batch listeners. Please take a look at some of the feedback I provided, which largely echoes what @artembilan has already reviewed. As you make further changes, we will need to add docs and other related components, but getting the implementation right is the critical step right now. Thanks again!

@igormq
Copy link
Author

igormq commented Jun 7, 2025

@igormq Thank you for this PR. Implementing observability with batch listeners is not trivial, and I think you laid good foundations here. Providing this as an optional feature is very important, as we don't want to impose observability by default in all batch listeners. Please take a look at some of the feedback I provided, which largely echoes what @artembilan has already reviewed. As you make further changes, we will need to add docs and other related components, but getting the implementation right is the critical step right now. Thanks again!

Hey @sobychacko and @artembilan thank you so much for all the feedback, really appreciate! I think that i addressed all of them. Let me know if I am missing something :)

…KafkaMessageListenerContainer.java

Co-authored-by: Michal Domagala <[email protected]>
Signed-off-by: Igor Macedo Quintanilha <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants