Skip to content

Commit 76b4106

Browse files
committed
Add JMXFetch to TracerInstaller for GraalVM Native
Error: Discovered unresolved method during parsing: org.datadog.jmxfetch.App.<init>(org.datadog.jmxfetch.AppConfig).
1 parent c06a408 commit 76b4106

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,11 @@ public static void start(
178178
createAgentClassloader(agentJarURL);
179179

180180
if (Platform.isNativeImageBuilder()) {
181-
// these default services are not used during native-image builds
182-
jmxFetchEnabled = false;
183-
remoteConfigEnabled = false;
184-
telemetryEnabled = false;
185-
// apply trace instrumentation, but skip starting other services
181+
// apply trace instrumentation at native-image build time
186182
startDatadogAgent(initTelemetry, inst);
183+
// TODO: are we sure we want measure native-image build instrumentation?
184+
// This is very different, happens at build time and doesn't include any service
185+
// initialization time.
187186
StaticEventLogger.end("Agent.start");
188187

189188
return;

dd-java-agent/agent-tooling/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ dependencies {
4141
api(project(':dd-java-agent:agent-bootstrap')) {
4242
exclude group: 'com.datadoghq', module: 'agent-logging'
4343
}
44+
compileOnly project(':dd-java-agent:agent-jmxfetch')
4445
compileOnly project(':dd-java-agent:agent-profiling')
4546
api group: 'com.blogspot.mydailyjava', name: 'weak-lock-free', version: '0.17'
4647
api libs.bytebuddy

dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/TracerInstaller.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package datadog.trace.agent.tooling;
22

33
import datadog.communication.ddagent.SharedCommunicationObjects;
4+
import datadog.communication.monitor.DDAgentStatsDClientManager;
5+
import datadog.trace.agent.jmxfetch.JMXFetch;
46
import datadog.trace.api.Config;
57
import datadog.trace.api.GlobalTracer;
8+
import datadog.trace.api.StatsDClientManager;
69
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
710
import datadog.trace.bootstrap.instrumentation.api.ProfilingContextIntegration;
811
import datadog.trace.core.CoreTracer;
@@ -25,6 +28,9 @@ public static synchronized void installGlobalTracer(
2528
.pollForTracingConfiguration()
2629
.build();
2730
installGlobalTracer(tracer);
31+
32+
StatsDClientManager statsDClientManager = DDAgentStatsDClientManager.statsDClientManager();
33+
JMXFetch.run(statsDClientManager);
2834
} else {
2935
log.debug("GlobalTracer already registered.");
3036
}

dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/ResourcesFeatureInstrumentation.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ public static void onExit() {
4343
"profiling/jfr/dd.jfp",
4444
"profiling/jfr/safepoints.jfp",
4545
"profiling/jfr/overrides/comprehensive.jfp",
46-
"profiling/jfr/overrides/minimal.jfp"
46+
"profiling/jfr/overrides/minimal.jfp",
47+
"metrics/project.properties" // JMXFetch version file needed for
48+
// org.datadog.jmxfetch.AppConfig
4749
};
4850

4951
for (String original : tracerResources) {

0 commit comments

Comments
 (0)