-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
0 / 10 of 1 issue completedOpen
0 / 10 of 1 issue completed
Copy link
Milestone
Description
This is a sub-step of #13031
We have been testing invokedynamic instrumentation in CI for a while, and we need to make progress towards making it the default.
As discussed in 2026-01-22 Java SIG meeting, one of the first steps would be to start with internal instrumentation:
- internal instrumentation have been tested with indy in CI for a while, most of it is already "indy ready" which means it runs inlined by default but can also use indy (opt-in)
- we should not break compatibility with existing extensions and distributions : both can provide their own instrumentation modules.
The goals of this step would be to achieve the following:
- migrate any remaining indy-incompatible internal instrumentation to be indy-compatible.
- make
InstrumentationModule.isIndyModule()returntruefor all internal instrumentation modules and make them useinline = falsewhenever possible - remove usages of the
isIndyReadymethod inExperimentalInstrumentationModulefor all internal instrumentation modules.
Implementation steps
- indy by default for internal instrumentation + muzzle check enable indy by default for internal modules #16753
- ensure that all internal instrumentation modules are "indy-ready"
- fix internal instrumentation: indy incompatibility with SecurityManager for some internal instrumentation #16821
- guava-10.0 make guava indy-ready #16989
- scala-fork-join-2.8
- hibernate-6.0
- hibernate-4.0
- hibernate-3.3
- hibernate-procedure-call-4.3 make hibernate-procedure-call indy-ready #16984
- okhttp-2.2 make okttp-2.2 indy ready #16983
- pekko-actor-1.0 make pekko-actor indy-ready #16982
- spring-core-2.0 make spring-core indy ready #16981
- maybe wait for a release cycle to wait for feedback from the field (if any)
-
isIndyModule() = true+inline = falsefor internal instrumentation - remove usages of
isIndyReadyand deprecate it. - remove testing in CI by removing
-PtestIndyas all internal instrumentation is using indy.
Once this is complete, all internal instrumentation modules are "indy native":
- they should always use indy
- they are no longer influenced by the
otel.javaagent.experimental.indyconfiguration option - there is no advice transformation applied: it is no longer necessary to modify "indy ready" instrumentation to use
inline = false
Notes
- there are a few internal instrumentations that still require to NOT have
inline = falsebecause they are inlined, which means for nowinline = falseis technically optional but should be used most of the time. - the
otel.javaagent.experimental.indyconfiguration option would still be useful for testing extensions and distributions compatibility with indy.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
No status