Open
Description
Currently, the agent have a global static list of classes that are excluded from instrumentation.
This list is maintained in co.elastic.apm.agent.bci.ElasticApmAgent#getAgentBuilder
method.
Also, there is the internal classes_excluded_from_instrumentation_default
configuration that plugins can't modify.
While simple and effective, this implementation has the following disadvantages:
- for internal plugins: adding support for a class that is currently ignored will require to change this exclusion.
Example : Binary execution support #903 : - for external plugins: there is no way to bypass the exclusion, hence preventing instrumentation of some classes
Example : Support for excluding classes from classes_excluded_from_instrumentation_default #1919