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);
    }
}
相关推荐
少平8182 分钟前
一分钱的Bug(求助帖)
java
Data_agent4 分钟前
1688获得1688公司档案信息API,python请求示例
开发语言·数据库·python
q***01776 分钟前
Spring.factories
java·数据库·spring
-大头.9 分钟前
Spring Bean作用域深度解析与实战
java·后端·spring
qq_3363139312 分钟前
java基础-排序算法
java·开发语言·排序算法
豆沙沙包?15 分钟前
2025年--Lc298-1019. 链表中的下一个更大节点(栈)--java版
java·数据结构·链表
fengfuyao98516 分钟前
匈牙利算法的MATLAB实现
java·算法·matlab
毕设源码-钟学长17 分钟前
【开题答辩全过程】以 基于springboot农科所农作物信息管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
周杰伦fans23 分钟前
C#中OrderByDescending 是LINQ扩展方法之一
开发语言·c#·linq
李绍熹41 分钟前
Lua 语言基础教程
开发语言·junit·lua