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);
    }
}
相关推荐
一嘴一个橘子21 小时前
mybatis - 动态语句、批量注册mapper、分页插件
java
组合缺一21 小时前
Json Dom 怎么玩转?
java·json·dom·snack4
又见野草21 小时前
C++类和对象(中)
开发语言·c++
危险、21 小时前
一套提升 Spring Boot 项目的高并发、高可用能力的 Cursor 专用提示词
java·spring boot·提示词
kgduu21 小时前
js之表单
开发语言·前端·javascript
kaico201821 小时前
JDK11新特性
java
钊兵21 小时前
java实现GeoJSON地理信息对经纬度点的匹配
java·开发语言
jiayong2321 小时前
Tomcat性能优化面试题
java·性能优化·tomcat
毕设源码-钟学长1 天前
【开题答辩全过程】以 基于Python的健康食谱规划系统的设计与实现为例,包含答辩的问题和答案
开发语言·python
秋刀鱼程序编程1 天前
Java基础入门(五)----面向对象(上)
java·开发语言