正如您在本系列(共三篇文章)的 第 1 部分 中所了解到的,监控 Java 应用程序的可用性和性能及其生产中的依赖性,这对于确保问题检测和加速问题诊断和修复至关重要。需要进行监视的类的源代码级插装具有 第 1 部分 所论述过的那些优势,但是这种方法通常都不可取或者不切实际。例如,很多您所感兴趣的监控点可能位于第三方组件中,而第三方组件的源代码您是不得而知的。在第 2 部分中,我着重介绍了无需修改原始源代码而插装 Java 类和资源的方法。
可选择的在源代码外编排插装的方法有:
- 截取
- 类包装
- 字节码插装
本文使用了 第 1 部分 中呈现的 ITracer
接口来实现性能数据跟踪,依次举例阐明了这些技巧。
![]() ![]() |
![]()
|
截取 的基本前提是通过一个截取构造和收集传入的入站与出站调用信息,对特定的调用模式进行转换。一个基本的截取程序的实现会:
- 获取对入站调用请求的当前时间。
- 取回出站响应的当前时间。
- 将运行时间作为两次度量的增量计算出来。
- 将调用的运行时间提交给应用程序性能管理(APM)系统。
图 1 展示了该流程:
图 1. 性能数据收集截取程序的基本流程

本文转自IBM Developerworks中国