arextest / arex-agent-java

Lightweight Java agent for traffic capture and replay, enhancing testing and debugging.
https://doc.arextest.com/
Apache License 2.0
416 stars 82 forks source link

[Bug] 与 opentelemetry java agent 一起挂载(双agent挂载)会出现非预期日志 #513

Closed shichanglin5 closed 6 days ago

shichanglin5 commented 1 week ago

Search before asking

AREX Test Service

AREX Java Agent (arextest/arex-agent-java)

Current Behavior

现在同时挂载两个 agent (opentelemetry agent 和 arex agent )会有如下 error 日志

企业微信截图_f841e854-1f15-4234-aba5-bc4a524ff976

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?

mr3 commented 6 days ago