dropwizard metrics - 基本使用介绍
之前在healthcheck中介绍了怎样通过metrics lib往系统中增加一些简单的健康侦測。如今讲讲dropwizard metrics更重要的部分。记录系统的度量信息。
dropwizard提供了多种度量方式:最简单记数counter,复杂点的实用于计算时间分布的histogram,用于计算速率的meter,以及同一时候有histogram和meter功能的timer。有兴趣能够去看看实现细节,类非常少,非常easy读懂。
Metrics的报告方式和healthcheck非常相似。库自生提供的各种报告渠道。
也能够非常easy自己扩展。
Metrics提供了各种包,能够帮助简化开发。当中metrics-servlet能够直接把metrics和healthcheck的信息在web request里面展示出来。
接下来给个使用的样例。对Web应用的请求进行度量,然后通过AdminServlet获取metrics和healthcheck信息。
- 在maven中导入须要的包
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-servlets</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-json</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-healthchecks</artifactId>
<version>${metrics.version}</version>
</dependency>
- 创建用来注冊metrics和healtcheck的servlet
public class HealthCheckServletContextListener extends HealthCheckServlet.ContextListener{
public static final HealthCheckRegistry HEALTH_CHECK_REGISTRY = new HealthCheckRegistry();
@Override
protected HealthCheckRegistry getHealthCheckRegistry() {
return HEALTH_CHECK_REGISTRY;
}
}
public class MetricsServletContextListener extends MetricsServlet.ContextListener {
public static final MetricRegistry METRIC_REGISTRY = new MetricRegistry();
@Override
protected MetricRegistry getMetricRegistry() {
return METRIC_REGISTRY;
}
}
- 在Spring Web action中创建timer。增加到MetricsServletContextListener的MetricRegistery中,对每一个方法開始调用time得到context,结束运行context.stop
private final Timer executions = MetricsServletContextListener.METRIC_REGISTRY.timer(MetricRegistry.name(SignupController.class, "executions"));
@Autowired
private UserService userService;
@RequestMapping(method = RequestMethod.POST)
public String register(@Valid User user, BindingResult bindingResult, RedirectAttributes redirectAttributes) {
final Timer.Context context = executions.time();
if (bindingResult.hasErrors()) {
redirectAttributes.addFlashAttribute("user", user);
redirectAttributes.addFlashAttribute(BindingResult.MODEL_KEY_PREFIX + "user", bindingResult);
context.stop();
return "redirect:/";
}
try {
userService.registerUser(user);
redirectAttributes.addFlashAttribute("username", user.getUsername());
return "redirect:/";
} catch (UserExistsException e) {
return "redirect:/";
} finally {
context.stop();
}
}
- 在Web.xml中配置AdminServlet訪问路径,配置2个listener
<listener>
<listener-class>com.cloud.demo.HealthCheckServletContextListener </listener-class>
</listener>
<listener>
<listener-class>com.cloud.demo.MetricsServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>metrics</servlet-name>
<servlet-class>com.codahale.metrics.servlets.AdminServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>metrics</servlet-name>
<url-pattern>/metrics/*</url-pattern>
</servlet-mapping>
这样就能够通过/metrics/healthcheck或者/metrics/metrics查看系统度量数据。
记住:系统度量最重要的是要分析系统中须要什么样的度量信息。技术实现反而不是那么重要。
很多其它dropwizard的功能包能够參考使用手冊
dropwizard metrics - 基本使用介绍的更多相关文章
- 【Graphite】使用dropwizard.metrics向Graphite中写入指标项数据
graphite 定时向Graphite中写入指标项数据,指标项模拟个数3000个 使用的类库 官方文档 dropwizard的github地址 Metric官方文档 metrics.dropwi ...
- 服务监控 | 彻底搞懂Dropwizard Metrics一篇就够了
Metrics是一个提供服务性能检测工具的Java类库,它提供了功能强大的性能指标工具库用于度量生产环境中的各关键组件性能. 度量类型 Metrics提供了以下几种基本的度量类型: Gauge:用于提 ...
- Java Metrics工具介绍
目录 简介 快速入门 Maven配置 MetricRegistry Gauge Meter Counter Histgram Timer Reporter 更多用法 参考资料 简介 Metric是一个 ...
- metrics实践 (metrics-spring)
这里主要介绍metrics与spring集成的使用方式. 1 添加maven依赖 <dependency> <groupId>com.ryantenney.metrics&l ...
- Metrics
系统开发到一定的阶段,线上的机器越来越多,就需要一些监控了,除了服务器的监控,业务方面也需要一些监控服务.Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作. 举 ...
- 微服务监控之一:Metrics让微服务运行更透明
摘要 让微服务运行状态清晰可见. 嘉宾演讲视频回顾及PPT:http://t.cn/R8b6i85 Metrics是什么 直译是“度量”,不同的领域定义有所区别,在微服务领域中的定义: “对微服务的某 ...
- HBase 监控 | HBase Metrics 初探(一)
前言:对于任意一个系统而言,做好监控都是非常重要的,HBase也不例外.经常,我们会从JMX中获取相关指标来做展示.对HBase进行监控,那这些指标是怎么生成的呢?如果你想自定义自己的监控指标又该怎么 ...
- 第三十六章 metrics(4)- metrics-graphite
将metrics report给graphite(carbon-relay) 一.代码 1.pom.xml <!-- metrics-graphite --> <dependency ...
- 第三十五章 metrics(3)- codahale-metrics基本使用
<!-- metrics --> <dependency> <groupId>io.dropwizard.metrics</groupId> <a ...
随机推荐
- ARKit从入门到精通(2)-ARKit工作原理及流程介绍
转载:http://blog.csdn.net/u013263917/article/details/73038519 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARK ...
- 基于jQuery个性圆圈倒计时特效
基于jQuery个性圆圈倒计时特效里面包含十几款不用效果的jQuery倒计时特效下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <section class=" ...
- Android studio 基本布局-底部按钮
在使用Android studio 的时候,准备弄的基本的布局出来,底部按钮,按了中间会显示. 来上代码: 页面menu_main.xml 这里弄控件的浮动耗费了点我的时间.原因是因为对其各种问题, ...
- call_user_func_array 应用场景分析
1. 场景一 a.你要调用的函数名是未知的 b.要调用函数的参数类型及个数也是未知的 定时任务类需要定时运行一个函数,则接口就可以类似这样设计: /** * 在$run_time时刻运行$call_b ...
- 【WPF】帐号系统中,用户注册的校验逻辑(正则表达式)
帐号系统中,用户注册时,在向服务器发送校验请求之前,客户端会先进行用户填写内容的校验(主要靠正则表达式). 由于校验注册的逻辑在多个项目中可以重用,这类通用的代码最好记录下来. 界面内容大致如下.现在 ...
- where子查询
限定查询(WHERE子句) 之前的查询是将一张表的全部记录查询出来,那么现在如果希望可以根据指定的条件查询的话,则必须指定限定查询. 格式: 的雇员的信息 l 使用“<>”完成 l S ...
- 【转】无后端(nobackend):前端优先的Web开发【译】
每个应用都由两样东西构成:该应用独有的功能和所有应用共有的功能,比方说用户注册.登录.忘记密码等.而从用户的角度出发,那些独有的功能归结起来就是用户界面以及系统的行为模式.而在视觉表象之后的功能,用户 ...
- Urllib3 库详解
文档:http://urllib3.readthedocs.io/en/latest/
- Microsoft Azure
Service Bus - Event Hub - Event Hubs Programming Guide - Service Bus Event Hubs Getting Started (Sam ...
- 微信小程序——wxParse使用方法
wxParse是一个微信小程序富文本解析组件.现在小程序里面自带了一个<rich-text>组件也能解析富文本,但是表现不尽人意.所以我还是采用的wxParse来解析富文本的. wxPar ...