通过 GraphingServlet 生成统计图
这种方式需要用到 AsyncCoalescingStatisticsappender,通过其记录的是每个 时间片各事务的执行时间统计信息,在此还要加上 GraphingStatisticSAPpender,将指定的监测指标数据单独抽出,再由 Perf4j 的 GraphingServlet 展现在页面上。一般可做为子页面加入到系统管理界面中。清单 9 中只是加入了一个用于生 成平均执行时间图示的 Appender 做为示例,当然 Perf4j 也允许加入多个 GraphingStatisticsAppender 以同时显示不同 指标的数据。
清单 9. 加入生成可视化数据的 Appender
class="org.perf4j.log4j. AsyncCoalescingStatisticsAppender">
class="org.perf4j.log4j.GraphingStatisticsAppender">
在 GraphType 中可以设定的性能指标有平均执行时间(Mean)、最长执行时间(Max)、最短 执行时间(Min)、执行时间标准差(StdDev)、执行次数(Count)和 每秒事务处理量(TPS)。TagNamesToGraph 是可选 项,用来指定需要输出的事务,如果不设定则会输出全部事务。
同时在 web.xml 中还要加入 GraphingServlet 的 映射。如清单 10。
清单 10. 在 web.xml 中配置 GraphingServlet
perf4jMonitor
org.perf4j.log4j.servlet.GraphingServlet
graphNames
meanExecutionTime,executionTPS
perf4jMonitor
/perf4jMonitor
至此在系统的运行过程中,访问 /perf4jMonitor 就可以实时的观测指定事务的性能 数据图示。
本文介绍了配置与使用 Perf4j 的诸多细节。在实际项目中,我们还应该设计一个易扩展的 体系结构,使第三方 API 能轻易加入。如果只是用 Perf4j 协助发现性能问题的源头,开发人员可采用临时代码中嵌入 StopWatch 类的方式。若是计划长期对系统性能跟踪,应设计一个完善的日志框架集成方案,能够轻易地将 Perf4j 无缝的 加入和脱离尤为重要。
尽管 Perf4j 中使用的是异步的输出源,在大量用户并发的性能测试和产品环境下,额外的 CPU 内存占用也是不容忽视的。因此务必确保 Perf4j 只用于对性能跟踪及瓶颈分析,而不要用于对系统负载能力的评估。
¥299.00
¥399.00
¥498.00
¥29.00