SkyWalking 的 Java 探针端是如何实现无侵入式埋点的?
在探针开发或者排查线上问题的时候,应该如何进行远程调试?
SkyWalking 最新支持的 Service Mesh 到底是什么?
SkyWalking 探针在使用上是无代码侵入的,而这种无侵入的自动埋点基于 Java 的 JavaAgent 技术。
启动时加载的 JavaAgent(以下所说的 JavaAgent 均代表启动时加载的 JavaAgent)是 JDK 1.5 之后引入的新特性,此特性为用户提供了在 JVM 将字节码文件读入内存之后,使用对应的字节流在 Java 堆中生成一个 Class 对象之前,对其字节码进行修改的能力,而JVM 也会使用用户修改过的字节码进行 Class 对象的创建。
SkyWalking 探针依赖于 JavaAgent 在一些特殊点(某个类的某些方法)拦截对应的字节码数据并进行 AOP 修改。当某个调用链路运行至已经被 SkyWalking 代码过的方法时,SkyWalking 会通过代理逻辑进行这些关键节点信息的收集、传递和上报,从而还原出整个分布式链路。
SkyWalking——SkyWalking二次开发必备知识
原文:https://www.cnblogs.com/zuoyang/p/14510889.html