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);
    }
}
相关推荐
香吧香14 分钟前
Spring boot 中 CommandLineRunner 在服务启动完成后自定义执行
java·spring boot·spring cloud
浓墨染彩霞20 分钟前
Java-----多线路
java·经验分享·笔记
清晓粼溪20 分钟前
SpringMVC02:扩展知识
java·后端·spring
曹牧22 分钟前
Java String[] 数组的 contains
java·开发语言·windows
yong999025 分钟前
LSD直线提取算法 MATLAB
开发语言·算法·matlab
qq_124987075327 分钟前
基于springboot+vue+mysql的校园博客系统(源码+论文+部署+安装)
java·vue.js·spring boot·mysql·毕业设计
魂梦翩跹如雨28 分钟前
P8752 [蓝桥杯 2021 省 B2] 特殊年份——Java解答
java·蓝桥杯
一只专注api接口开发的技术猿28 分钟前
构建电商数据中台:基于淘宝 API 关键词搜索接口的设计与实现
大数据·开发语言·数据库
谷哥的小弟31 分钟前
Spring Framework源码解析——Ordere
java·后端·spring·源码
浩瀚地学36 分钟前
【Java】String
java·开发语言·经验分享·笔记·学习