Do not instrument exporter class loader (#306)
This commit is contained in:
parent
7bc48ead58
commit
e0589e18fe
|
@ -57,6 +57,8 @@ public final class ClassLoaderMatcher {
|
||||||
CacheBuilder.newBuilder().weakKeys().concurrencyLevel(CACHE_CONCURRENCY).build();
|
CacheBuilder.newBuilder().weakKeys().concurrencyLevel(CACHE_CONCURRENCY).build();
|
||||||
private static final String AGENT_CLASSLOADER_NAME =
|
private static final String AGENT_CLASSLOADER_NAME =
|
||||||
"io.opentelemetry.auto.bootstrap.AgentClassLoader";
|
"io.opentelemetry.auto.bootstrap.AgentClassLoader";
|
||||||
|
private static final String EXPORTER_CLASSLOADER_NAME =
|
||||||
|
"io.opentelemetry.auto.tooling.ExporterClassLoader";
|
||||||
|
|
||||||
private SkipClassLoaderMatcher() {}
|
private SkipClassLoaderMatcher() {}
|
||||||
|
|
||||||
|
@ -92,6 +94,7 @@ public final class ClassLoaderMatcher {
|
||||||
case "org.apache.cxf.common.util.ASMHelper$TypeHelperClassLoader":
|
case "org.apache.cxf.common.util.ASMHelper$TypeHelperClassLoader":
|
||||||
case "sun.misc.Launcher$ExtClassLoader":
|
case "sun.misc.Launcher$ExtClassLoader":
|
||||||
case AGENT_CLASSLOADER_NAME:
|
case AGENT_CLASSLOADER_NAME:
|
||||||
|
case EXPORTER_CLASSLOADER_NAME:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -17,6 +17,7 @@ package io.opentelemetry.auto.test
|
||||||
|
|
||||||
import io.opentelemetry.auto.bootstrap.AgentClassLoader
|
import io.opentelemetry.auto.bootstrap.AgentClassLoader
|
||||||
import io.opentelemetry.auto.tooling.ClassLoaderMatcher
|
import io.opentelemetry.auto.tooling.ClassLoaderMatcher
|
||||||
|
import io.opentelemetry.auto.tooling.ExporterClassLoader
|
||||||
import io.opentelemetry.auto.util.test.AgentSpecification
|
import io.opentelemetry.auto.util.test.AgentSpecification
|
||||||
|
|
||||||
class ClassLoaderMatcherTest extends AgentSpecification {
|
class ClassLoaderMatcherTest extends AgentSpecification {
|
||||||
|
@ -29,6 +30,13 @@ class ClassLoaderMatcherTest extends AgentSpecification {
|
||||||
ClassLoaderMatcher.skipClassLoader().matches(agentLoader)
|
ClassLoaderMatcher.skipClassLoader().matches(agentLoader)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def "skips exporter classloader"() {
|
||||||
|
setup:
|
||||||
|
final URLClassLoader exporterLoader = new ExporterClassLoader(new URL[0], null)
|
||||||
|
expect:
|
||||||
|
ClassLoaderMatcher.skipClassLoader().matches(exporterLoader)
|
||||||
|
}
|
||||||
|
|
||||||
def "does not skip empty classloader"() {
|
def "does not skip empty classloader"() {
|
||||||
setup:
|
setup:
|
||||||
final ClassLoader emptyLoader = new ClassLoader() {}
|
final ClassLoader emptyLoader = new ClassLoader() {}
|
||||||
|
@ -45,4 +53,9 @@ class ClassLoaderMatcherTest extends AgentSpecification {
|
||||||
expect:
|
expect:
|
||||||
AgentClassLoader.name == "io.opentelemetry.auto.bootstrap.AgentClassLoader"
|
AgentClassLoader.name == "io.opentelemetry.auto.bootstrap.AgentClassLoader"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def "ExporterClassLoader class name is hardcoded in ClassLoaderMatcher"() {
|
||||||
|
expect:
|
||||||
|
ExporterClassLoader.name == "io.opentelemetry.auto.tooling.ExporterClassLoader"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue