Closed shichanglin5 closed 6 days ago
AREX Java Agent (arextest/arex-agent-java)
现在同时挂载两个 agent (opentelemetry agent 和 arex agent )会有如下 error 日志
预期:没有 error 日志
同时挂载 OT agent 和 Arex Agent 即可复现
可能的原因分析(如有描述不对请指正): Opentelemetry Agent (简称OT agent)的类隔离基于 AgentClassLoader 加载 .classdata 实现(OT agent构建会将需要隔离的类后缀重命名为 .classdata,后续这些类只能由 OT Agent 加载); 由于 Arex Agent 的 instrument 对 OT Agent 的隔离类增强,而 OT AgentClassLoader 的隔离类查找路径不会走 AppClassLoader 导致找不到类; 这里双Agent挂载场景,不需要 ArexAgent 增强 OT Agent 的隔离类,因为隔离类由 OT AgentClassLoader加载,所以在 Arex Agent 的 AgentBuilder 需要将 OT AgentClassLoader 排除掉
-Darex.ignore.type.prefixes=xxx.type
-Darex.ignore.classloader.prefixes=xxx.classloader
Search before asking
AREX Test Service
AREX Java Agent (arextest/arex-agent-java)
Current Behavior
现在同时挂载两个 agent (opentelemetry agent 和 arex agent )会有如下 error 日志
Expected Behavior
预期:没有 error 日志
Steps To Reproduce
同时挂载 OT agent 和 Arex Agent 即可复现
Anything else
可能的原因分析(如有描述不对请指正): Opentelemetry Agent (简称OT agent)的类隔离基于 AgentClassLoader 加载 .classdata 实现(OT agent构建会将需要隔离的类后缀重命名为 .classdata,后续这些类只能由 OT Agent 加载); 由于 Arex Agent 的 instrument 对 OT Agent 的隔离类增强,而 OT AgentClassLoader 的隔离类查找路径不会走 AppClassLoader 导致找不到类; 这里双Agent挂载场景,不需要 ArexAgent 增强 OT Agent 的隔离类,因为隔离类由 OT AgentClassLoader加载,所以在 Arex Agent 的 AgentBuilder 需要将 OT AgentClassLoader 排除掉
Are you willing to submit a pull request to fix on your own?