in graalvm-native-image-demo/opentelemetry-agent-native/src/main/java/com/alibaba/jvm/Target_io_opentelemetry_javaagent_tooling_AgentInstaller.java [57:116]
private static void installBytebuddyAgent(
Instrumentation inst,
ClassLoader extensionClassLoader,
Iterable<AgentListener> agentListeners) {
WeakRefAsyncOperationEndStrategies.initialize();
// If noop OpenTelemetry is enabled, autoConfiguredSdk will be null and AgentListeners are not
// called
AutoConfiguredOpenTelemetrySdk autoConfiguredSdk =
installOpenTelemetrySdk(extensionClassLoader);
ConfigProperties sdkConfig = AutoConfigureUtil.getConfig(autoConfiguredSdk);
InstrumentationConfig.internalInitializeConfig(new ConfigPropertiesBridge(sdkConfig));
copyNecessaryConfigToSystemProperties(sdkConfig);
setBootstrapPackages(sdkConfig, extensionClassLoader);
/*ConfiguredResourceAttributesHolder.initialize(
SdkAutoconfigureAccess.getResourceAttributes(autoConfiguredSdk));*/
for (BeforeAgentListener agentListener :
loadOrdered(BeforeAgentListener.class, extensionClassLoader)) {
agentListener.beforeAgent(autoConfiguredSdk);
}
int numberOfLoadedExtensions = 0;
for (AgentExtension agentExtension : loadOrdered(AgentExtension.class, extensionClassLoader)) {
if (logger.isLoggable(FINE)) {
logger.log(
FINE,
"Loading extension {0} [class {1}]",
new Object[] {agentExtension.extensionName(), agentExtension.getClass().getName()});
}
try {
numberOfLoadedExtensions++;
} catch (Exception | LinkageError e) {
logger.log(
SEVERE,
"Unable to load extension "
+ agentExtension.extensionName()
+ " [class "
+ agentExtension.getClass().getName()
+ "]",
e);
}
}
logger.log(FINE, "Installed {0} extension(s)", numberOfLoadedExtensions);
// configureIgnoredTypes here
IgnoredTypesBuilderImpl builder = new IgnoredTypesBuilderImpl();
for (IgnoredTypesConfigurer configurer :
loadOrdered(IgnoredTypesConfigurer.class, extensionClassLoader)) {
configurer.configure(builder, sdkConfig);
}
Trie<Boolean> ignoredTasksTrie = builder.buildIgnoredTasksTrie();
InstrumentedTaskClasses.setIgnoredTaskClassesPredicate(ignoredTasksTrie::contains);
// configureIgnoredTypes
addHttpServerResponseCustomizers(extensionClassLoader);
runAfterAgentListeners(agentListeners, autoConfiguredSdk);
}