Skip to content

Commit 17e1dcb

Browse files
authored
Skip loading agent if traceable agent has been loaded (hypertrace#180)
Signed-off-by: Pavol Loffay <[email protected]>
1 parent d5e5699 commit 17e1dcb

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

javaagent/src/main/java/org/hypertrace/agent/instrument/HypertraceAgent.java

+14
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ public static void premain(String agentArgs, Instrumentation inst) {
4646
}
4747

4848
public static void agentmain(String agentArgs, Instrumentation inst) {
49+
if (isTraceableAgentLoaded()) {
50+
System.out.println("Traceable agent is already running. Will not attempt to attach");
51+
return;
52+
}
53+
4954
Map<String, String> parsedArgs = parseAgentArgs(agentArgs);
5055
for (Map.Entry<String, String> argEntry : parsedArgs.entrySet()) {
5156
System.setProperty(argEntry.getKey(), argEntry.getValue());
@@ -103,4 +108,13 @@ private static Map<String, String> parseAgentArgs(String agentArgs) {
103108
}
104109
return argsMap;
105110
}
111+
112+
private static boolean isTraceableAgentLoaded() {
113+
try {
114+
Class.forName("ai.traceable.agent.bootstrap.AgentContext", true, null);
115+
return true;
116+
} catch (Throwable e) {
117+
return false;
118+
}
119+
}
106120
}

0 commit comments

Comments
 (0)