JavaSimon
JavaSimon,是Java Simple Monitoring的意思,是Java性能监控的一个开源方案(官方说明)。本文介绍它在项目中的用法:
pom.xml,加入core与dashboard的依赖
1 <dependency>
2 <groupId>org.javasimon</groupId>
3 <artifactId>javasimon-spring</artifactId>
4 <version>3.3.0</version>
5 </dependency>
6 <dependency>
7 <groupId>org.javasimon</groupId>
8 <artifactId>javasimon-console-embed</artifactId>
9 <version>3.3.0</version>
10 </dependency>
web.xml,加入dashboard:
1 <servlet>
2 <servlet-name>SimonConsoleServlet</servlet-name>
3 <servlet-class>org.javasimon.console.SimonConsoleServlet</servlet-class>
4 <init-param>
5 <param-name>url-prefix</param-name>
6 <param-value>/javasimon</param-value>
7 </init-param>
8 </servlet>
9 <servlet-mapping>
10 <servlet-name>SimonConsoleServlet</servlet-name>
11 <url-pattern>/javasimon/*</url-pattern>
12 </servlet-mapping>
applicationContext.xml 加入AOP设置
1 <!-- 调用StopWatch计时的Interceptor -->
2 <bean id="monitoringInterceptor" class="org.javasimon.spring.MonitoringInterceptor" />
3
4 <!-- 监控定义了@Monitored的方法 -->
5 <bean id="monitoringAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
6 <property name="advice" ref="monitoringInterceptor" />
7 <property name="pointcut">
8 <bean class="org.javasimon.spring.MonitoredMeasuringPointcut" />
9 </property>
10 </bean>
在已知一定要监控的类或方法上加@Monitored
不修改代码监控新的方法
如下AOP定义片段监控了cn包或子包下的所有方法
1 <!-- 性能监控拦截 -->
2 <aop:config>
3 <aop:advisor advice-ref="monitoringInterceptor" pointcut="execution(* cn..*.*(..))" />
4 </aop:config>
(可选)监控jdbc访问速度 换用新的jdbc driver,在旧的jdbc url里插入simon
- Oracle
Driver class name: org.javasimon.jdbc4.Driver instead of oracle.jdbc.OracleDriverURL: jdbc:simon:oracle:thin:@host:1521/database instead of jdbc:oracle:thin:@host:1521/database - MySQL
Driver class name: org.javasimon.jdbc4.Driver instead of com.mysql.jdbc.DriverURL: jdbc:simon:mysql://host:3306/database instead of jdbc:mysql://host:3306/database
使用
访问"{your webapp address}/javasimon",如:http://localhost:8080/essa-logger/javasimon即可。
