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);
    }
}
相关推荐
liulilittle8 小时前
C++ 并发双阶段队列设计原理与实现
linux·开发语言·c++·windows·算法·线程·并发
I'm Jie8 小时前
告别重复编码!SpringBoot 字段变更(新旧值)日志工具类的规范化设计与优雅实现
java·spring boot·后端
哥谭居民00018 小时前
需求分析,领域划分到选择套用业务模式到转化落地,两个基本案例
java·大数据·需求分析
Tao____8 小时前
适合中小型项目的物联网平台
java·物联网·mqtt·开源·iot
小马爱打代码8 小时前
Spring AI:多模态 AI 大模型
java·人工智能·spring
lly2024068 小时前
并查集快速查找
开发语言
李贺梖梖8 小时前
day07 方法、面向对象1
java
繁星蓝雨8 小时前
我与C++的故事(杂谈)
开发语言·c++
除了代码啥也不会8 小时前
Java基于SSE流式输出实战
java·开发语言·交互
虹科网络安全8 小时前
艾体宝干货 | Redis Java 开发系列#2 数据结构
java·数据结构·redis