当前位置: 首页 > news >正文

SpringCloud系列(35)--使用HystrixDashboard进行服务监控

前言:在上一节中我们使用了Hystrix进行服务熔断处理,至此关于Hystrix的使用到此为止,本节内容关注的是如何使用HystrixDashboard对调用进行监控。

1、HystrixDashboard概述

Hystrix提供的准实时的调用监控(HystrixDashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。SpringCloud也提供了HystrixDashboard的整合,对监控内容转化成可视化界面。
 

2、创建一个监控程序模块,命名为cloud-consumer-hystrix-dashboard9001
(1)在父工程下新建模块

 (2)选择模块的项目类型为Maven并选择模块要使用的JDK版本

(3)填写子模块的名称,然后点完成即可完成创建

效果图:

3、修改cloud-consumer-hystrix-dashboard9001子模块的pom.xml文件,然后reolad一下,下载依赖

例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud01</artifactId><groupId>com.ken.springcloud</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>cloud-consumer-hystrix-dashboard9001</artifactId><dependencies><!--hystrix dashboard--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId></dependency><!--监控--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!--lombok插件--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
</project>

4、为cloud-consumer-hystrix-dashboard9001子模块添加名为application的yml配置文件(注:yml是官方推荐的配置文件格式,最好使用yml文件而不是properties文件)

效果图:

5、修改application.yml文件配置
server:port: 9001

6、为cloud-consumer-hystrix-dashboard9001子模块新建一个主启动类,类名输入com.ken.springcloud.HystrixDashboardMain9001,然后创建即可

效果图:

7、编写HystrixDashboardMain9001启动类
package com.ken.springcloud;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;@SpringBootApplication
@EnableHystrixDashboard
public class HystrixDashboardMain9001 {public static void main(String[] args) {SpringApplication.run(HystrixDashboardMain9001.class, args);}}

8、启动cloud-consumer-hystrix-dashboard9001项目

效果图:

9、在浏览器地址栏里输入http://localhost:9001/hystrix然后回车进入Hystrix Dashboard监控页面

效果图:

10、监控指定的服务,我这里选择监控cloud-provider-hystrix-payment8001服务
(1)修改cloud-provider-hystrix-payment8001服务的主启动类
package com.ken.springcloud;import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;@SpringBootApplication
//使用Feign,激活并开启
@EnableEurekaClient
//开启断路器功能
@EnableCircuitBreaker
public class PaymentHystrixMain8001 {public static void main(String[] args) {SpringApplication.run(PaymentHystrixMain8001.class, args);}//此配置是为了服务监控而配置,与服务容错本身无关,springcLoud升级后的坑,ServletRegistrationBean因为springboot的默认路径不是"/hystrix.stream" ,只要在自己的项目里配置上下面的servlet就可以了@Beanpublic ServletRegistrationBean getServlet() {HystrixMetricsStreamServlet hystrixMetricsStreamServlet = new HystrixMetricsStreamServlet();ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(hystrixMetricsStreamServlet);servletRegistrationBean.setLoadOnStartup(1);servletRegistrationBean.addUrlMappings("/hystrix.stream");servletRegistrationBean.setName("HystrixMetricsStreamServlet");return servletRegistrationBean;}}
(2)先启动eureka-server7001然后再启动cloud-provider-hystrix-payment8001

效果图:

(3)再次来到Hystrix Dashboard监控页面,在对应的地方填写上相应的信息
[1]填写Turbine访问地址http://localhost:8001/hystrix.stream
[2]Delay填写2000
[3]Title填写Test

例:

(4)点击按钮开始监控cloud-provider-hystrix-payment8001服务

效果图:

注:这里一开始是空白的,开始没有请求的话会一直显示Loading,不用担心,不是程序问题

11、 查看请求正常的情况下断路器的状态

在浏览器的地址栏里连续多次的输入http://localhost:8001/payment/circuit/1,调用接口后返回到HystrixDashboard的页面监控cloud-provider-hystrix-payment8001服务的状态

例:

可以看出在请求正常的情况下断路器的状态是CLOSED

12、根据图形化界面判断服务、请求的状态
(1)根据右边对应状态的7种颜色可以在左边看出对应状态下的请求次数

每个状态都对应着一个颜色,可以通过颜色在界面左边的那对数字那里看出对应请求状态的出现次数

(2)根据左边的实心圆判断实例的健康程度、请求数量

实心圆共有两种含义,其一是通过颜色的变化代表了实例的健康程度,它的健康度从绿色<黄色<橙色<红色递减;其二是实心圆的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大,所以通过观察实心圆的变化,就可以在大量的实例中快速的发现故障实例和高压力实例。

绿色:

红色:

(3)根据左边的曲线判断流量的情况

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

(4)图形化化页面汇总说明

http://www.lqws.cn/news/512551.html

相关文章:

  • 《汇编语言:基于X86处理器》第4章 数据传送、寻址和算术运算(2)
  • 行为验证码 AJ-Captcha 使用文档
  • Golang Kratos 系列:领域层model定义是自洽还是直接依赖第三方(三)
  • C++字符串的行输入
  • MySQL之SQL性能优化策略
  • 《仿盒马》app开发技术分享-- 兑换列表展示(68)
  • git操作练习(3)
  • 【Python-Day 29】万物皆对象:详解 Python 类的定义、实例化与 `__init__` 方法
  • SQL Server从入门到项目实践(超值版)读书笔记 18
  • git commit --no-verify -m ““ 命令的作用是什么
  • LangChain网页自动化PlayWrightBrowserToolkit
  • Python训练营-Day40-训练和测试的规范写法
  • maven:迁移到 Maven Central 后 pom.xml的配置步骤
  • 马克思主义基本原理期末复习下
  • HarmonyOS开发基础 --鸿蒙仓颉语言基础语法入门
  • 基于元学习的回归预测模型如何设计?
  • 3D重建任务中的显式学习和隐式学习
  • 脉内频率捷变LFM信号
  • 【神经网络预测】基于LSTM、PSO - LSTM、随机森林和多项式拟合的火力机组排放预测
  • 解锁Selenium:Web自动化的常用操作秘籍
  • 超实用教程:n8n + MCP(MinIO Client Processor)构建智能文件处理流水线 - 从零部署到企业级自动化实战​
  • ubuntu20.04安装多版本python时,如何使用sudo python3.10
  • Linux离线搭建Jenkins
  • 有AI后,还用学编程吗?
  • 哈希表理论与算法总结
  • 飞往大厂梦之算法提升-day08
  • Java实现简易即时通讯系统
  • leetcode230-二叉搜索树中第K小的元素
  • OSS与NAS混合云存储架构:非结构化数据统一管理实战
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | MovieApp(电影卡片组件)