第六章:Hystrix监控面板及数据聚合

前言

前面一章,我们讲解了如何整合 。而在实际情况下,使用了 的同时,还会对其进行实时的数据监控,反馈各类指标数据。今天我们就将讲解下 和 .其中 是一款针对 进行实时监控的工具,通过 我们可以在直观地看到各 的请求响应时间,请求成功率等数据,监控单个实例内的指标情况。后者 ,能够将多个实例指标数据进行聚合的工具。

Hystrix-Dashboard

Turbine

参考资料

总结

最后

老生常谈

Hystrix-Dashboard

是一款针对Hystrix进行实时监控的工具,通过 我们可以在直观地看到各 的请求响应时间, 请求成功率等数据。

创建一个 工程。

0.引入POM依赖。

1.启动类加入 注解,开启仪表盘功能。

2.配置文件修改下,指定端口和应用名称。

3.启动应用,访问:http://127.0.0.1:9696/hystrix ,就可以看见如下页面了:

从首页的监控页面可以看出,此时尚未配置监控应用。而且,从页面我们也可以看出,一共有三种数据源形式,即不同的监控方式:

默认的集群监控:通过URL:http://turbine-hostname:port/turbine.stream 开启,实现对默认集群的监控。

指定的集群监控:通过URL:http://turbine-hostname:port/turbine.stream?cluster=[clusterName] 开启,实现对clusterName集群的监控。

单体应用的监控:通过URL:http://hystrix-app:port/actuator/hystrix.stream 开启,实现对具体某个服务实例的监控。

注意: 之后,默认的监控端点地址加了上下文路径 。可通过 属性进行修改,默认是:

现在,我们改造下 项目,开启端点,同时启用监控端点 。0.引入端点依赖。

1.配置文件开启端点 。这里需要注意, 之后,默认只开启了端点 、 。其他的需要通过 进行额外配置。

现在我们启动 。然后添加:http://127.0.0.1:8038/actuator/hystrix.stream 到仪表盘中。

填写了标题后,点击按钮 ,就可以进入监控页面了。

此时,我们访问下:http://192.168.2.108:8038/feign 。因为服务 为启动,所以会触发熔断方法,多访问几次,再次查看监控页面,就可以看见相关数据了。

此时,可以启动下服务 ,然后再次访问下接口。

不同的颜色对应断路器监控的百分比

关于监控界面的参数解读,这里直接转至博客园:一抹书香的图例,地址:https://www.cnblogs.com/chenweida/p/9025589.html

实心圆:它有颜色和大小之分,分别代表实例的监控程度和流量大小。如上图所示,它的健康度从绿色、黄色、橙色、红色递减。通过该实心圆的展示,我们就可以在大量的实例中快速的发现故障实例和高压力实例。

曲线:用来记录 2 分钟内流量的相对变化,我们可以通过它来观察到流量的上升和下降趋势。

其他一些数量指标如下图所示

Turbine

只能实现单个微服务的监控,可是一般项目中是微服务是以集群的形式搭建,一个一个的监控不现实。而 的原理是,建立一个 服务,并注册到 中,并发现 上的 服务。通过配置 会自动收集所需 的监控信息,最后通过 展现,以达到集群监控的效果。

简单来说,就是通过注册到注册中心,发现其他服务的 服务,然后进行聚合数据,最后通过自身的端点输出到仪表盘上进行个性化展示。这我们就监控一个 应用即可,当有新增的应用加入时,我们只需要配置下 参数即可。

创建 工程。0.引入POM依赖。

1.启动类加入注解 和 .

2.配置文件加入注册中心及 相关配置信息。

2.修改 应用,创建一个 配置文件,里面就设置一个端口好区别下实例。

2.此时启动下应用,同时启动 应用,设置不同的 值,以此启动多个实例。在仪表盘应用:http://127.0.0.1:9696/hystrix 中添加:http://127.0.0.1:9698/turbine.stream ,之后点击按钮: ,此时界面是 状态。接着多次访问:http://127.0.0.1:8038/feign?name=oKong ,并可以看见有数据了。

之后,我们接着访问:http://127.0.0.1:8039/feign?name=oKong ,可以看见 变成2了。

一点疑问:关于 是监控 的指标情况,当我们监控的方法都一致时,是不是区分不了具体是哪个服务的了?按目前的演示demo中,是没有看出具体是哪个应用出现了异常。。不知道是不是使用姿势不对,觉得不应该是这样的吧。。

加了个配置文件 ,端口号不一致,创建个新的api接口加上 ,最后出现的图例确实是按照方法名来的。这应该不是巧合了吧。。

还希望有了解这方面的同学,能答疑解惑下。目前是用 了,对这块不是很熟悉。而且 也仅仅是监控了下,具体深入尚未了解。。路漫漫其修远兮呀!

参考资料

https://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#hystrixtimeoutsandribbon_clients

https://www.cnblogs.com/chenweida/p/9025589.html

总结

本章节主要是对 数据进行实时监控进行了讲解,介绍了单体应用和集群应用的监控示例。这块也只是简单的使用,未进行深入了解过,看官网收集监控数据还可以使用 的方式进行收集,目前默认是使用 的协议进行收集的,有兴趣的同学可以自行试试,这和后面会讲解的 微服务跟踪是类似的,后者也可以使用 进行 数据收集,可以提供性能。

最后

目前互联网上大佬都有分享 系列教程,内容可能会类似,望多多包涵了。原创不易,码字不易,还希望大家多多支持。若文中有错误之处,还望提出,谢谢。

老生常谈

个人QQ:

微信公众号:

源码示例:https://github.com/xie19900123/spring-cloud-learning

前言

前面一章,我们讲解了如何整合 。而在实际情况下,使用了 的同时,还会对其进行实时的数据监控,反馈各类指标数据。今天我们就将讲解下 和 .其中 是一款针对 进行实时监控的工具,通过 我们可以在直观地看到各 的请求响应时间,请求成功率等数据,监控单个实例内的指标情况。后者 ,能够将多个实例指标数据进行聚合的工具。

Hystrix-Dashboard

Turbine

参考资料

总结

最后

老生常谈

Hystrix-Dashboard

是一款针对Hystrix进行实时监控的工具,通过 我们可以在直观地看到各 的请求响应时间, 请求成功率等数据。

创建一个 工程。

0.引入POM依赖。

1.启动类加入 注解,开启仪表盘功能。

2.配置文件修改下,指定端口和应用名称。

3.启动应用,访问:http://127.0.0.1:9696/hystrix ,就可以看见如下页面了:

从首页的监控页面可以看出,此时尚未配置监控应用。而且,从页面我们也可以看出,一共有三种数据源形式,即不同的监控方式:

默认的集群监控:通过URL:http://turbine-hostname:port/turbine.stream 开启,实现对默认集群的监控。

指定的集群监控:通过URL:http://turbine-hostname:port/turbine.stream?cluster=[clusterName] 开启,实现对clusterName集群的监控。

单体应用的监控:通过URL:http://hystrix-app:port/actuator/hystrix.stream 开启,实现对具体某个服务实例的监控。

注意: 之后,默认的监控端点地址加了上下文路径 。可通过 属性进行修改,默认是:

现在,我们改造下 项目,开启端点,同时启用监控端点 。0.引入端点依赖。

1.配置文件开启端点 。这里需要注意, 之后,默认只开启了端点 、 。其他的需要通过 进行额外配置。

现在我们启动 。然后添加:http://127.0.0.1:8038/actuator/hystrix.stream 到仪表盘中。

填写了标题后,点击按钮 ,就可以进入监控页面了。

此时,我们访问下:http://192.168.2.108:8038/feign 。因为服务 为启动,所以会触发熔断方法,多访问几次,再次查看监控页面,就可以看见相关数据了。

此时,可以启动下服务 ,然后再次访问下接口。

不同的颜色对应断路器监控的百分比

关于监控界面的参数解读,这里直接转至博客园:一抹书香的图例,地址:https://www.cnblogs.com/chenweida/p/9025589.html

实心圆:它有颜色和大小之分,分别代表实例的监控程度和流量大小。如上图所示,它的健康度从绿色、黄色、橙色、红色递减。通过该实心圆的展示,我们就可以在大量的实例中快速的发现故障实例和高压力实例。

曲线:用来记录 2 分钟内流量的相对变化,我们可以通过它来观察到流量的上升和下降趋势。

其他一些数量指标如下图所示

Turbine

只能实现单个微服务的监控,可是一般项目中是微服务是以集群的形式搭建,一个一个的监控不现实。而 的原理是,建立一个 服务,并注册到 中,并发现 上的 服务。通过配置 会自动收集所需 的监控信息,最后通过 展现,以达到集群监控的效果。

简单来说,就是通过注册到注册中心,发现其他服务的 服务,然后进行聚合数据,最后通过自身的端点输出到仪表盘上进行个性化展示。这我们就监控一个 应用即可,当有新增的应用加入时,我们只需要配置下 参数即可。

创建 工程。0.引入POM依赖。

1.启动类加入注解 和 .

2.配置文件加入注册中心及 相关配置信息。

2.修改 应用,创建一个 配置文件,里面就设置一个端口好区别下实例。

2.此时启动下应用,同时启动 应用,设置不同的 值,以此启动多个实例。在仪表盘应用:http://127.0.0.1:9696/hystrix 中添加:http://127.0.0.1:9698/turbine.stream ,之后点击按钮: ,此时界面是 状态。接着多次访问:http://127.0.0.1:8038/feign?name=oKong ,并可以看见有数据了。

之后,我们接着访问:http://127.0.0.1:8039/feign?name=oKong ,可以看见 变成2了。

一点疑问:关于 是监控 的指标情况,当我们监控的方法都一致时,是不是区分不了具体是哪个服务的了?按目前的演示demo中,是没有看出具体是哪个应用出现了异常。。不知道是不是使用姿势不对,觉得不应该是这样的吧。。

加了个配置文件 ,端口号不一致,创建个新的api接口加上 ,最后出现的图例确实是按照方法名来的。这应该不是巧合了吧。。

还希望有了解这方面的同学,能答疑解惑下。目前是用 了,对这块不是很熟悉。而且 也仅仅是监控了下,具体深入尚未了解。。路漫漫其修远兮呀!

参考资料

https://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#hystrixtimeoutsandribbon_clients

https://www.cnblogs.com/chenweida/p/9025589.html

总结

本章节主要是对 数据进行实时监控进行了讲解,介绍了单体应用和集群应用的监控示例。这块也只是简单的使用,未进行深入了解过,看官网收集监控数据还可以使用 的方式进行收集,目前默认是使用 的协议进行收集的,有兴趣的同学可以自行试试,这和后面会讲解的 微服务跟踪是类似的,后者也可以使用 进行 数据收集,可以提高性能。

最后

目前互联网上大佬都有分享 系列教程,内容可能会类似,望多多包涵了。原创不易,码字不易,还希望大家多多支持。若文中有错误之处,还望提出,谢谢。

老生常谈

个人QQ:

微信公众号:

源码示例:https://github.com/xie19900123/spring-cloud-learning

系列

如果你觉得文章不错,欢迎点赞分享到朋友圈

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180926G0BEI000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券