通过日志监控并收集Java应用程序数据(4)

    作者:课课家教育更新于: 2016-02-03 14:24:57

    大神带你学编程,欢迎选课

      通过 GraphingServlet 生成统计图

      这种方式需要用到 AsyncCoalescingStatisticsappender,通过其记录的是每个 时间片各事务的执行时间统计信息,在此还要加上 GraphingStatisticSAPpender,将指定的监测指标数据单独抽出,再由 Perf4j 的 GraphingServlet 展现在页面上。一般可做为子页面加入到系统管理界面中。清单 9 中只是加入了一个用于生 成平均执行时间图示的 Appender 做为示例,当然 Perf4j 也允许加入多个 GraphingStatisticsAppender 以同时显示不同 指标的数据。

    通过日志监控并收集Java应用程序数据(4)_java平台_java编程_课课家

      清单 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 只用于对性能跟踪及瓶颈分析,而不要用于对系统负载能力的评估。

课课家教育

未登录