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);
    }
}
相关推荐
爱丽_2 分钟前
Spring 事务:传播行为、失效场景、回滚规则与最佳实践
java·后端·spring
zihao_tom14 分钟前
Go环境搭建(vscode调试)
开发语言·vscode·golang
timi先生21 分钟前
语料库全栈项目部署 (Vue + Java + CQPweb)
java·前端·vue.js
IT方大同24 分钟前
(实时操作系统)线程管理
c语言·开发语言·嵌入式硬件
阿kun要赚马内39 分钟前
Python面向对象:@property装饰器
开发语言·前端·python
sunwenjian88640 分钟前
Java进阶--IO流
java·开发语言
wildlily842741 分钟前
C++ Primer 第5版章节题 第十三章(二)
开发语言·c++
意法半导体STM321 小时前
【官方原创】STM32H7双核芯片通过 STlink连接失败问题分析 LAT1654
开发语言·前端·javascript·stm32·单片机·嵌入式硬件
深蓝海拓1 小时前
使用@property将类方法包装为属性
开发语言·python
客卿1231 小时前
滑动窗口--模板
java·算法