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 分钟前
C# 泛型 委托 接口
开发语言·windows·c#
Antonio9153 分钟前
【Swift】UIKit:UISegmentedControl、UISlider、UIStepper、UITableView和UICollectionView
开发语言·ios·swift
IUGEI14 分钟前
【计算机网络】HTTP/3如何实现可靠传输?
java·网络·后端·网络协议·tcp/ip·计算机网络·http
0***1431 分钟前
JavaScript视频处理案例
开发语言·javascript·音视频
ceclar12341 分钟前
C#常用集合的使用
开发语言·windows·c#
z***I3941 小时前
PHP Composer
开发语言·php·composer
u***u6851 小时前
JavaGraphQL案例
java·spring boot·后端
1***81531 小时前
Swift在服务端开发的可能性探索
开发语言·ios·swift
2501_941879811 小时前
Python在微服务高并发异步流量控制与动态限流熔断架构中的实践
java·开发语言
zero13_小葵司1 小时前
JavaScript性能优化系列(八)弱网环境体验优化 - 8.2 离线支持:Service Worker实现基本离线功能
开发语言·javascript·性能优化