有了AOP以及Java instrument之后,Java有很多很好的性能监控工具可以很有效的帮助我们分析系统瓶颈。例如使用jvisualvm的gui连接JVM应用之后可以监控应用的各种状态,可以看到每个函数的执行时间,不过很多时候我们没有jvisualvm的gui帮忙调试,这个时候我比较喜欢使用javasimon,可以通过AOP配置监控service layer方法调用时间,监控jdbc调用时间,还可以监控Web http request所需的时间,同时提供了web dashboard,完美无缺。下面说说怎么在spring相关项目中使用java Simon。
更多使用细节可以参考http://blog.csdn.NET/cloud_ll/article/details/43603241
JavaSimon主要是用于performance测试的时候查看系统瓶颈,如果是想实现系统实时监控,推荐使用Yahoo Metrics
引用JavaSimon依赖:
- <dependency>
- <groupId>org.javasimon</groupId>
- <artifactId>javasimon-spring</artifactId>
- <version>${project-javasimonVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.javasimon</groupId>
- <artifactId>javasimon-console-embed</artifactId>
- <version>${project-javasimonVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.javasimon</groupId>
- <artifactId>javasimon-jdbc4</artifactId>
- <version>${project-javasimonVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.javasimon</groupId>
- <artifactId>javasimon-javaee</artifactId>
- <version>${project-javasimonVersion}</version>
- </dependency>
Data source监控:
- <bean id="realHikariCPDataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown">
- <constructor-arg ref="hikariConfig" />
- </bean>
- <bean id="hikariCPDataSource" class="org.javasimon.jdbcx4.WrappingSimonDataSource">
- <property name="dataSource" ref="realHikariCPDataSource"/>
- </bean>