apm 字节码技术

服务端 APM

假设有这样一个函数,我们需要进行监控

复制代码
public void saveUser() {
    doDbOperation();
    flushCache();
}

我们需要对它的字节码进行改写,自动注入一些代码达到监控的功能,一个最简单的模型如下面的代码所示

复制代码
public void _saveUser() {
    // 获取开始时间
    long start = System.currentTimeMillis();
    // 记录未捕获异常
    Throwable uncaughtException = null;

    try {
        doDbOperation();
        flushCache();
    } catch (Throwable e) {
        uncaughtException = e;
        throw e;
    } finally {
        // 记录结束时间
        long end = System.currentTimeMillis();
        // 上报 spanName、开始时间、结束时间、是否有未捕获的异常
        APMUtil.report("UserService.saveUser", start, end, uncaughtException);
    }
}
相关推荐
memgLIFE几秒前
Springboot 分层结构
java·spring boot·spring
shoubepatien18 分钟前
JAVA -- 08
java·后端·intellij-idea
kong790692820 分钟前
Java新特性-(二)Java基础语法
java·新特性·java 基础语法
yangminlei21 分钟前
springboot pom.xml配置文件详细解析
java·spring boot·后端
Evand J24 分钟前
【MATLAB例程】多锚点RSSI定位和基站选择方法,基于GDOP、基站距离等因素。以Wi-Fi定位为例,附下载链接
开发语言·matlab·定位·gdop·rssi
superman超哥27 分钟前
仓颉语言中锁的实现机制深度剖析与并发实践
c语言·开发语言·c++·python·仓颉
黄俊懿28 分钟前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——全局事务的提交
java·后端·spring·spring cloud·微服务·架构·架构师
JAVA+C语言35 分钟前
String Constant Pool
java·开发语言
快乐肚皮36 分钟前
一文了解XSS攻击:分类、原理与全方位防御方案
java·前端·xss
郝学胜-神的一滴1 小时前
OpenGL的glDrawElements函数详解
开发语言·c++·程序人生·游戏·图形渲染