前言
在前文中我们已经介绍了OpenTelemetry
的种种使用方式,然后真的当大家们自己接入的时候可能会有这样的问题“接入调用链需要引入sdk,我们线上应用这么多要改到猴年马月啊”,然后不禁开始怀疑起了人生,然后对于接入调用链也没有最开始那么积极。
确实如上面所说SDK的形式很多时候对于已经在线上稳定运行的应用来说是一个不小的改造负担,不仅麻烦而且后续升级困难,如果SDK有bug,后续的修复也成为了难题。但是调用链技术发展到当下已经比较成熟了,对于Java来说,Java Agent技术就可以帮助实现调用链的无侵入式接入。
Java Agent
什么是Java Agent
Java Agent
一般可以被称为探针,是一种可以在Java应启动前和运行中修改应用的字节码的技术。通过在启动项中添加-javaagent:path/to/agent.jar
来制定使用特定的Agent。
Java Agent的优势
使用Java Agent
可以无侵入式的对应用代码进行修改,而应用本身可以不用进行任何的修改。而且因为Java Agent
是基于字节码的修改,因此非常适合应用在AOP的领域。具体的Java Agent
的细节就不在此讨论了,后续大家有兴趣我可以另写一篇相关的介绍文章。