Skip to content
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

Deprecate Apache HttpComponents 4.x instrumentation #3932

Closed
bclozel opened this issue Jun 23, 2023 · 1 comment
Closed

Deprecate Apache HttpComponents 4.x instrumentation #3932

bclozel opened this issue Jun 23, 2023 · 1 comment
Assignees
Labels
instrumentation An issue that is related to instrumenting a component type: task A general task
Milestone

Comments

@bclozel
Copy link
Contributor

bclozel commented Jun 23, 2023

Several important issues have been reported against our instrumentation for HttpComponents: a memory leak in #3920 and NPEs in #3797.

This seems to come from the very extension points being used for the instrumentation: the MicrometerHttpClientInterceptor might not be a good fit for instrumentation and according to the library author, a proper instrumentation would require subclassing the HttpClientBuilder and asking all Micrometer users to use it. This is a major breaking change, and a quite invasive one.

With this issue, we should consider whether we should deprecate the instrumentation of the async variant of HttpComponents (it looks like the sync variant, MicrometerHttpRequestExecutor, is not suffering from the same issues). According to the official website:

HttpCore 4.4.x branch is considered stable and production ready. Please note the 4.x release series will be receiving fixes for major defects and security issues only.

Users of HttpCore 4.x are strongly encouraged to migrate to HttpCore 5.x

Inflicting a major breaking change to our users for a library that should be upgraded in the first place seems like a good discussion to have before rushing to implementing fixes.

Note that we'll fix the instrumentation for HttpComponents 5.x in #3800. There, the new ExecChainHandler and AsyncExecChainHandler contracts and the recent introduction of the instrumentation make this choice easier.

@bclozel bclozel added waiting for team An issue we need members of the team to review type: task A general task labels Jun 23, 2023
@bclozel bclozel added this to the 1.12 backlog milestone Jun 23, 2023
@bclozel bclozel self-assigned this Jun 23, 2023
@cachescrubber
Copy link
Contributor

@bclozel Thanks for your summary of the situation. I second your arguments to deprecate HttpCore 4.x instrumentation.

@bclozel bclozel modified the milestones: 1.12 backlog, 1.12.0-M1 Jun 26, 2023
@bclozel bclozel added instrumentation An issue that is related to instrumenting a component and removed waiting for team An issue we need members of the team to review labels Jun 27, 2023
@shakuzen shakuzen changed the title Consider dropping HttpComponents 4.x async instrumentation Deprecate Apache HttpComponents 4.x instrumentation Jul 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
instrumentation An issue that is related to instrumenting a component type: task A general task
Projects
None yet
Development

No branches or pull requests

2 participants