java agent

90 阅读1分钟

java agent

比较有代表性的两个产品:

  • skywalking
    • 一般通过静态 attach 的方式对字节码增强。premain 作为入口。
  • arthas
    • 通过动态的方式 attach 的方式对字节码增强。agentmain 作为入口。

基本原理

通过 JDK 自带的 instrumentation 实现。增加 transformer,将要增强的类进行 transform。

参考资料