dropwizard metrics是一个非常有用的监控工具
我用他来做远程接口的调用次数,响应时间监控,项目是基于spring的,怎么把metrics集成进来呢
话不多少,直接上代码
1、在pom.xml中添加依赖
<dependency>
<groupId>com.ryantenney.metrics</groupId>
<artifactId>metrics-spring</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>3.1.2</version>
</dependency>
2、添加一个spring的配置文件,让spring能读取到
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:metrics="http://www.ryantenney.com/schema/metrics"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.ryantenney.com/schema/metrics
http://www.ryantenney.com/schema/metrics/metrics.xsd ">
<!-- Creates a MetricRegistry bean -->
<metrics:metric-registry id="metricRegistry" />
<!-- Creates a HealthCheckRegistry bean (Optional) -->
<metrics:health-check-registry id="health" />
<!-- Registers BeanPostProcessors with Spring which proxy beans and capture metrics -->
<!-- Include this once per context (once in the parent context and in any subcontexts) -->
<metrics:annotation-driven metric-registry="metricRegistry" />
<!-- 将registry注入到ServletContextAttribute中
AdminServlet需要使用到这两个属性-->
<bean
class="org.springframework.web.context.support.ServletContextAttributeExporter">
<property name="attributes">
<map>
<entry key="com.codahale.metrics.servlets.MetricsServlet.registry">
<ref bean="metricRegistry" />
</entry>
<entry key="com.codahale.metrics.servlets.HealthCheckServlet.registry">
<ref bean="health" />
</entry>
</map>
</property>
</bean>
</beans>
3、在web.xml中添加servlet配置,方便通过servlet直接读取统计到的数据
<servlet>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>com.codahale.metrics.servlets.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/dropwizard/*</url-pattern>
</servlet-mapping>
4、在需要监控的方法上面加上类似@Timed的注解
5、打开浏览器,输入localhost:8080/dropwizard就可以看到一个监控菜单了
(网络有点扯淡,上传不了图片了)
6、默认他的方法耗时的单位是秒,执行频率是次/秒,如果需要修改成毫秒,次/分钟,需要在web.xml中添加如下配置
<context-param>
<param-name>com.codahale.metrics.servlets.MetricsServlet.durationUnit</param-name>
<param-value>MILLISECONDS</param-value>
</context-param>
<context-param>
<param-name>com.codahale.metrics.servlets.MetricsServlet.rateUnit</param-name>
<param-value>MINUTES</param-value>
</context-param>
本文详细介绍如何将Dropwizard Metrics监控工具集成到Spring项目中,包括添加依赖、配置Spring、设置servlet映射及使用注解监控方法执行情况。
311

被折叠的 条评论
为什么被折叠?



