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

Indy module migration #11457

Open
30 of 36 tasks
SylvainJuge opened this issue May 24, 2024 · 1 comment
Open
30 of 36 tasks

Indy module migration #11457

SylvainJuge opened this issue May 24, 2024 · 1 comment

Comments

@SylvainJuge
Copy link
Contributor

SylvainJuge commented May 24, 2024

The following instrumentation modules currently override the io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule#isIndyModule and return false.

Each of them will need to be modified in order to become "indy compliant".

This is part of #8999

The #9508 PR provides a list of reasons why those instrumentations need to be manually modified, for reference this #9508 PR is also the one that introduced a toggle to test this dispatch implementation through modification of advice classes.

The PRs that are tagged "test indy" (list) will run with this automatic migration to "indy dispatch".
The automatic transformation is provided by io.opentelemetry.javaagent.tooling.instrumentation.indy.AdviceTransformer ASM transformer.


Implementation proposal

This issue gather the steps to complete the 1st step of this "simple but tedious" plan:

  1. migrate the instrumentation listed above
  2. migrate all the instrumentations that are supported by AdviceTransformer
  3. remove AdviceTransformer and cleanup
@SylvainJuge
Copy link
Contributor Author

Because the migration will take a while, I have documented the migration and some of the characteristics of the non-inlined advices in #11546

The summary is:

  • all instrumentation modules listed here are explicitly opting-out of automatic indy advice conversion
  • those instrumentation modules need refactoring to become "indy compatible" with automatic advice conversion
  • this issue tracks the global progress of this refactoring

Once everything has been migrated, this issue can be closed and we can start the next steps which might look like the following (to be further discussed):

  • changing the default of otel.javaagent.experimental.indy configuration to true to perserve the ability to revert to inlining
  • migrate all instrumentations to make them "indy native", mostly by adding inline = false
  • implement further refactoring enabled by indy advices: remove shading, simplify helper classes, ...

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

No branches or pull requests

1 participant