Beet是一个Java开源类库用于记录Spring Java应用程序的性能指示。它能够记录Java方法调用情况、SQL语句和HTTP请求,也可以记录自定义事件。配置简单,并且不需要改动任何代码。能够立即知道那一个用户与Session触发的每一个事件和什么时候触发的。提供JMX管理和诊断工具。能够将记录数据输出为XML或利用JDBC存储到数据库中。Beet对系统资源消耗低。
官方网址:http://beet.sourceforge.net/(官方网站不支持IE6,建议用Firefox或者Chrome浏览)
我读完教程后,竟然发现Beet就是好像专门为Ss3ex设计的,Beet的配置环境和ss3ex的环境一样
。
指南地址:http://beet.sourceforge.net/documentation/tutorial
我再怎么描述,觉得也比不了官方的写得好。
我简述总结下:
1、Beet能够记录Java方法调用情况、SQL语句和HTTP请求,分别对应在配置文件spring-base.xml中的三个地方,配置简单。
2、其中官方的指南上对于记录Java方法调用情况,是用AspectJ pointcut 写的:
track-method-expression="execution(* com.mtgi.analytics.example.service..*(..))"
我可以做下改进,结合annotation的标签来做声明式标注:
@Pointcut("@annotation(你自定义的标签)")
具体的可以参考我博客中的另一篇文章《ss3ex中使用声明式缓存》中的annotation的标签的用法。
3、配置后记录日志的格式如下:
<?xml version="1.0" encoding="UTF-8" ?>
- <event-log>
- <event id="3dc2f043-c764-48f9-9977-76f689ba12e3">
<type>http-request</type>
<name>/</name>
<application>ss3ex</application>
<start>2009-05-30T22:42:29.203+08:00</start>
<duration-ms>234</duration-ms>
- <event-data uri="/" protocol="HTTP/1.1" method="GET" remote-address="127.0.0.1" remote-host="127.0.0.1">
<parameters />
</event-data>
</event>
- <event id="d5576543-d7d0-48c5-a830-3060078a5cb3">
<type>http-request</type>
<name>/demo/success.shtml</name>
<application>ss3ex</application>
<start>2009-05-30T22:42:29.437+08:00</start>
<duration-ms>94</duration-ms>
- <event-data uri="/demo/success.shtml" protocol="HTTP/1.1" method="GET" remote-address="127.0.0.1" remote-host="127.0.0.1">
<parameters />
</event-data>
</event>
……
附录:spring-beet.xml文件
<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://www.mantis-tgi.com/schema/bt/1.1"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.mantis-tgi.com/schema/bt/1.1 http://www.mantis-tgi.com/schema/bt/mtgi-bt-1.1.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
<bt:manager application="ss3ex" flush-schedule="0/30 * * * * ?"
track-method-expression="@annotation(log)">
<bt:xml-persister binary="false" compress="false" file="${catalina.home}/logs/beet-ss3ex-perf.xml"/>
<bt:http-requests parameters="command"/>
</bt:manager>
</beans>
其中@annotation(log)是我声明的日志标签。
分享到:
相关推荐
1. **UrlRewriteFilter**: 这是一个非常流行的开源Java过滤器,它可以集成到任何基于Servlet的Web应用中,包括SS3EX框架。它负责解析请求的URL,根据配置文件中的规则进行重写。 2. **规则定义**: 在`urlrewrite....
总结来说,这个项目是关于将ss3ex转换成一个支持Maven的Java项目,便于管理和构建,同时也可能提供了一种工具,帮助开发者在他们的工作中更高效地使用或集成ss3ex。通过博客链接提供的信息,读者可以深入了解这个...
2007卡耐基软件工程网路教材 SSD3ex2答案
ssd3ex5源码,自己写的,保证100分!
文件列表中的"ss3ex.bmp"可能是一个项目标识或图标,它可能包含了项目的视觉元素,帮助识别项目。而"ss3ex"可能是项目的主干代码或者扩展模块,包含了对SpringSide3核心功能的增强和定制。 这个项目的源代码分析,...
博客链接(https://ss3ex.iteye.com/blog/436901)可能包含了关于如何在Maven项目中集成和配置iBatis的实践教程,读者可以通过阅读该博客获取更具体的步骤和示例代码。 综上所述,"maven版ibatis"的主题涵盖了Maven...
此外,小巧的体积允许磁带库被集成到普通机箱中,便于管理和维护,提升了数据的安全性。 3. **无缝兼容性**: AIT-3Ex的一大优点在于其良好的前后兼容性。它可以与前代的Sony AIT-2产品兼容,这意味着科罗拉多盲人...
标题“SSD3 EX1-7”暗示我们正在讨论固态硬盘(SSD)相关的课程内容,特别是关于SSD3系列课程的一个实验练习,编号为EX1-7。这个实验可能涉及SSD的工作原理、存储技术、性能优化或相关的编程实践。...
派特莱LCE-A 多层信号灯2D CAD Pole M2pdf,特点:高节能无需维护的LED多层信号灯,体积小可识别性强,特别匹配于各类中小型设备的外观设计。派特莱特有的混合棱镜切割灯罩,消除了可能存在的视觉盲点,大大提高了远...
Sizzle 是一套前端用智能来处理模块和组件依赖关系的框架。 它遵循 CommonJS 的运行规范来完成对各个模块的动态加载。而且可以同时包含其他库而不产生冲突。 Sizzle的使用很简单,其下共有 5 个常用的方法, 只...
例如,`ch3ex6.m`, `ch3ex5.m`, `ch2ex3.m`, `ch4ex5a.m` 和 `ch2ex4.m` 可能是书中的练习题,每个对应一个特定章节的实例,可能涵盖了不同主题的MATLAB编程实践。 3. **图像处理**: 标签"图像处理与计算机视觉...
【压缩包子文件的文件名称列表】中的文件可能分别对应课程的不同单元,如BI-U03_3EX.ppt可能是第三单元的练习讲解或答案解析,BI-U04_3EX.ppt可能是第四单元的内容。这些PPT文件可能包含了课件展示、习题解析、语言...
它基于前一代三端子IPD系列(MIP2EX/MIP3EX)进行改进升级,通过增加多项功能来提供更广泛的系统设计灵活性以及更高的能源效率,从而有助于降低整体成本。 #### 主要特点 - **高效PWM控制与轻载间歇振荡控制**:...
- **修订历史**: 列出了文档的主要更新记录。 - **片上调试支持 (OCDS)**: 提供了 OCDS 的介绍、特性列表以及工具接口推荐等内容。 #### 系统架构 - **AURIX™ TC3xx 平台高阶 – TC39x**: 描述了该系列中的高端...
"4ex"和"3ex"可能表示不同的布局样式,而数字(如4、3、2)可能表示每页展示的项目数量。每个页面都可能详细介绍服务或案例,并附有图片和客户评价。 5. **services.html**:这个文件用于列出网站提供的各项服务,...
下面我们将深入探讨如何使用`libZPlay`库以及它的`LoadFileID3Ex`函数来获取和显示MP3文件的ID3v2信息。 首先,为了使用`libZPlay`库,我们需要包含相应的头文件并创建`ZPlay`类的实例。在代码中,我们看到`...
随着现代电子产品的复杂性和集成度不断提高,FPGA、ARM、DSP等高性能芯片的电源管理也变得越来越复杂。这些芯片通常需要多种不同电压等级的电源供电,例如内核电压(如90nm工艺下的1.2V或130nm工艺下的1.8V)、辅助...