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

Exclude agent plugins from instrumentation #2757

Open
SylvainJuge opened this issue Aug 25, 2022 · 1 comment
Open

Exclude agent plugins from instrumentation #2757

SylvainJuge opened this issue Aug 25, 2022 · 1 comment
Labels

Comments

@SylvainJuge
Copy link
Member

SylvainJuge commented Aug 25, 2022

This is a follow-up issue of #2724, where the issue was excluding the ECS logging instrumentation for the internal copy of ECS logging within the agent (thus loaded within agent/internal plugin classloader), but not the one that might be present in the application.

Classes that are loaded by the internal plugin classloader do not need to be instrumented and should thus be excluded from instrumentation.

See #2724 (comment) for hints on why this might be required.

For external plugins, instrumentation is required in order to allow the agent to delegate to internal tracer.

Few ideas that needs to be explored:

  • can we exclude by default for all instrumentations without having to rewrite all overrides of co.elastic.apm.agent.sdk.ElasticApmInstrumentation#getClassLoaderMatcher
  • can we provide an opt-in exclusion from this exclusion, which could be for example used for external OpenTelemetry or for the rare cases that require agent self-instrumentation ?
@SylvainJuge SylvainJuge added the technical-debt Technical debt label Aug 25, 2022
@SylvainJuge SylvainJuge mentioned this issue Aug 25, 2022
10 tasks
@jackshirazi
Copy link
Contributor

maybe worth having that on a property, there's a scenario where a customer wants to use an external plugin to adjust internally loaded instrumentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants