arthas是什么?他能帮我们做什么?
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
arthas使用举例
arthas 实现这些功能的原理分析
arthas对jvm中的一些状态进行监控以及观察进程中执行的方法主要依赖底层JVM提供的JVM TI机制,JVMTI全称 JVM Tool Interface是 JVM 暴露出来的一些供用户扩展的接口集合。
在JAVA开发中java.lang.instrument.Instrumentation作为JVMTI的一个java语言的抽象。通过调用Instrumentation的方法来完成JVM TI提供给我们的能力。而Instrumentation的实例,只有通过javaagent的方式才能够提供给我们的程序。他们的大致关系如下图所示:
简单说明一下Instrumentation中的提供的能力说明:
public interface Instrumentation {
/**
* 注册一个Transformer&