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);
    }
}
相关推荐
NON-JUDGMENTAL几秒前
Tomcat 配置问题速查表
java·tomcat
一 乐4 分钟前
农产品销售系统|农产品电商|基于SprinBoot+vue的农产品销售系统(源码+数据库+文档)
java·javascript·数据库·vue.js·spring boot·后端·农产品销售系统
沐知全栈开发7 分钟前
SVG 参考手册
开发语言
蒲公英源码7 分钟前
java企业OA自动化办公源码
java·spring boot·后端
Summer_Uncle8 分钟前
【C++学习】对象特性--继承
开发语言·c++·学习
西贝爱学习15 分钟前
【QT】安装包
开发语言·qt
鬼火儿41 分钟前
集成RabbitMQ+MQ常用操作
java·后端
ZHE|张恒1 小时前
Java 通配符
java
Merrick1 小时前
Java 方法参数默认值新方案:使用DefArgs!
java·后端
程序员小假1 小时前
finally 释放的是什么资源?
java·后端