标签:springcloud boot springframework starter Dashboard 监控 spring org cloud
新建springcloud-consumer-dashboard-82模块
- pom.xml
关键依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
其它依赖
<!--Feign的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.dong</groupId>
<artifactId>springcloud-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--热部署工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
- application.yml
server:
port: 82
- 主启动类 @EnableHystrixDashboard开启流量监控
package com.dong.consumer3;
@SpringBootApplication
@EnableHystrixDashboard
public class ConsumerThreeApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerThreeApplication.class, args);
}
}
到此dashboard流量监控模块就搭建完毕了。(可以认为它是一个工具,用来监控某个模块的访问量)
springcloud-provider-8001 配置流量监控
- 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 主启动类 关键注解@EnableDiscoveryClient
注意:起初没有使用@EnableCircuitBreaker注解,访问http://localhost:8001/actuator/hystrix.stream 一直z在ping。并且流量监控页面也是一直loading。最后发现需要加上@EnableCircuitBreaker 添加熔断的支持。
package com.dong.provider;
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableCircuitBreaker
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
@Bean
public ServletRegistrationBean hystrixMetricsStreamServlet(){
ServletRegistrationBean registrationBean = new ServletRegistrationBean(new HystrixMetricsStreamServlet());
//访问该页面就是监控页面
registrationBean.addUrlMappings("/actuator/hystrix.stream");
registrationBean.setName("HystrixMetricsStreamServlet");
return registrationBean;
}
}
- controller 访问的接口上加一个@HystrixCommand注解,可以不写相关熔断的方法。监控页面就可以监控到了。(此注解的详细用户见服务熔断)
@GetMapping("/dept/get/{id}")
@HystrixCommand
public Dept getDept(@PathVariable("id") Long id) {
Dept dept = deptService.queryById(id);
if (dept == null) {
throw new RuntimeException("Fail");
}
return dept;
}
测试
启动springcloud-provider-8001,springcloud-consumer-dashboard-82和Eureka
启动springcloud-consumer-dashboard-82可能会报一些错,我们可以不管它。
访问:http://localhost:8001/actuator/hystrix.stream 如果一直ping,我们可以访问http://localhost:8001/dept/get/1 。还是不行就多访问几次,就可以ping到相关信息。
最后访问:http://localhost:82/hystrix
填入要监测的地址,delay和title后,点击Monitor Stream就能跳到对应的监控页面了。
最后多次访问http://localhost:8001/dept/get/1 我们发现上图箭头指的灰色区域会逐渐变大。这就是说访问量越多,圈越大。
补充
- 七色
- 一圈
实心圆:公有两种含义,他通过颜色的变化代表了实例的健康程度
它的健康程度从绿色<黄色<橙色<红色递减
该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大,该实心圆就越大,所以通过该实心圆的展示,就可以在大量的实例中快速发现故障实例和高压力实例。
- 一线
曲线:用来记录2分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势!
- 整图说明
参考教程:https://www.kuangstudy.com/
标签:springcloud,boot,springframework,starter,Dashboard,监控,spring,org,cloud 来源: https://www.cnblogs.com/lanxinren/p/14805506.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。