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);
    }
}
相关推荐
哪有时间简史几秒前
Python程序设计基础
开发语言·python
醇氧几秒前
SqlLogInterceptor mybatis配置打印SQL
java·sql·mybatis
Elcker1 分钟前
JAVA-Web 项目研发中如何保持团队研发风格的统一
java·前端·javascript
zh_xuan5 分钟前
kotlin对集合数据的操作
开发语言·kotlin
a程序小傲14 分钟前
京东Java面试被问:多活数据中心的流量调度和数据同步
java·开发语言·面试·职场和发展·golang·边缘计算
88号技师20 分钟前
2026年1月一区SCI-最优或最劣优化器Farthest better or nearest worse optimizer-附Matlab免费代码
开发语言·数学建模·matlab·启发式算法·优化算法
feifeigo12321 分钟前
基于嵌套阵列的DOA估计Matlab仿真例程
开发语言·matlab
三金1213824 分钟前
Java定时任务Schedule详解及Cron表达式实践
java·开发语言
Coder_Boy_34 分钟前
基于SpringAI的在线考试系统-数据库 表结构 & 完整外键依赖关系梳理
java·数据库·人工智能·软件工程
恃宠而骄的佩奇1 小时前
蚁剑 php一句话木马简单免杀(编码)绕过360,火绒
开发语言·web安全·php·免杀·一句话木马·火绒安全