在应用时,尤其是在分布式的系统中,如果系统出了问题,我们需要及时发现并解决。所以这就需要我们时时去监控应用的健康状态。

7.1.1代码实现

  1. 首先,我们需要引入Spring Boot Actuator的包到build.gradle文件中,如下:

implementation 'org.springframework.boot:spring-boot-starter-actuator'

  1. 这个依赖使我们有能力通过节点来操作,如/env,/info,/metrics,/health等。让我们启动我们的应用,然后输入地址:http://localhost:800/health,你将会看到如下的信息:
  2. 在我们添加了Actuator的依赖之后,我们可以添加和执行多种监控命令。接下来,我们添加一些点位符信息到application.properties的文件中。这个文件位于src/main/resources目录下。

info.build.name=${name}
info.build.description=${description}
info.build.version=${version}

  1. 接着,我们创建新的文件gradle.properties在项目的根目录下,内容如下:

version=0.0.1-SNAPSHOT
description=BookPub Catalog Application

  1. 在项目的根目录下的settings.gradle文件中加入rootProject.name=’BookPub’信息。
  2. 为了连接这些信息,我们需要修改一下build.gradle的文件,修改信息如下:

bootRun {

addResources = false

}

processResources {

filesMatching("**/application.properties") {

expand(project.properties)

}

}

  1. 启动应用,并访问http://localhost:8080/info 你将会看到如下的信息

  1. 让我们创建自己的健康指引器来看一下上面/health的功能是如何运行的。为了展示我们所有应用的属性状态,我们可以这样设置,如果大于或等于0,就是UP;否则就是不通宝应用是否在执行。显然,如果有错误出现,那么返回的值就会是DOWN。为了我伴着接下来的项目,我们先注释掉db-count-starter/src/main/java/org/owen/bookpubstarter/dbcount目录下的DbCountRunner.jav中的getRepsitoryName(…)方法。
  2. 在项目db-count-starter下的build.gradle文件中同样加入这行代码:

implementation 'org.springframework.boot:spring-boot-starter-actuator'

  1. 现在我们将会创建一个新的文件名称为DbCountHealthIndicator.java在db-count-starter/src/main/java/org/owen/bookpubstarter/dbcount目录下。

public class DbCountHealthIndicator implements HealthIndicator

{

private CrudRepository repository;

public DbCountHealthIndicator(CrudRepository repository)

{

this.repository = repository;

}

@Override

public Health health()

{

try

{

long count = repository.count();

if (count >= 0)

{

return Health.up().withDetail("count", count).build();

} else

{

return Health.unknown().withDetail("count", count).build();

}

} catch (Exception e)

{

return Health.down(e).build();

}

}

}

  1. 最后,自动注册我们的HealthIndicator,我修改db-countstarter/src/main/java/org/test/bookpubstarter/dbcount目录下的DbCountAutoConfiguration.java。

@Autowired

private HealthAggregator healthAggregator;

@Bean

public HealthIndicator dbCountHealthIndicator(Collection<CrudRepository> repositories)

{

CompositeHealthIndicator compositeHealthIndicator = new

CompositeHealthIndicator(healthAggregator);

for (CrudRepository repository : repositories)

{

String name = DbCountRunner.getRepositoryName(repository.getClass());

compositeHealthIndicator.addHealthIndicator(name, new DbCountHealthIndicator(repository));

}

return compositeHealthIndicator;

}

  1. 启动应用,然后访问:http://localhost:8080/health,你将会看到如下的信息

7.监控应用和数据可视化 7.1通用健康状态指引器相关推荐

  1. AI安防视频分析监控大屏数据可视化系统会如何在现代城市发展?

    相信大家现在对"雪亮工程"."明厨亮灶"."智慧天眼"这类词并不陌生,我们已经建成了强大的视频监控网,视频智能化被运用到了各个独立的行业当中 ...

  2. 智慧交通|交通监控系统的数据可视化如何实现?

    随着目前城市道路交通的完善,相应的也给交通部门带来不小的管理压力.如何更好的监控车辆的超速超限问题,以及在城区内如何掌握一些路口的交通情况,路段周围车辆的运行情况,交通治安情况等,单靠人力显然是力不从 ...

  3. 数据分析Power BI数据可视化教程(二)——关于切片器和地图可视化教程

    Power BI 是基于云的商业数据分析和共享工具,它能帮您把复杂的数据转化成最简洁的视图.通过它,您可以快速创建丰富的可视化交互式报告,即使在外也能用手机端 APP 随时查看.甚至检测公司各项业务的 ...

  4. 基于echarts+js+fexible.js实现的数据可视化适配案例(附源代码)

    介绍 数据可视化 :借助于图形化手段,清晰有效地传达与沟通信息 ECharts:是一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器,底层依赖矢量 ...

  5. [大数据]数据可视化 -- 练习卷(下)

    简答题 一.简述数据可视化的概念? 数据可视化将各种数据用图形的方式展示给人们,是人们理解数据.诠释数据的重要手段和途径,数据可视化是帮助用户通过认识数据,进而发现这些数据所反映的实质. 二.简述数据 ...

  6. 大数据可视化技术面临的挑战及应对措施

    来源:科技导报 本文约5400字,建议阅读10分钟 本文介绍了适用于大数据的数据可视化技术,讨论了针对大数据可视化应用需求自主研发的交互式可视化设计平台AutoVis及其应用. [ 导读 ]本文从大数 ...

  7. 大数据可视化技术的作用有哪些

    在大数据时代,数据可视化技术在广泛应用的同时,也面临诸多新的挑战.大数据可视化是一个面向应用的研究领域,本文重点从应用实践的角度,讨论在大数据背景下大数据可视化内涵.研究进展.相关技术与产品以及所面临 ...

  8. 【博主推荐】大数据可视化大屏(源码下载)

    可视化大屏交流学习 提示:本文推荐好的大数据可视化源码,用于学习,用于项目,欢迎大家积极交流.持续更新贴-- 资源目录 可视化大屏交流学习 一. 某公司大数据展示模版2 二.大数据可视化通用素材 三. ...

  9. 基于HTML5的数据可视化方法有哪些

      现在在大数据的带领下,数据可视化越来越突出,能够清楚的分析出自己想要的数据,这也是我们现在最求的数据可视化方法,那么实现HTML5的数据可视化方法有哪些?这都是我们值得研究的东西,数据可以给我们带 ...

  10. 数据可视化、模板框架、动态控件、可视化大屏、数据监管、监控平台、图表元件库、数据看板、驾驶舱、统计图表、园区、大屏展示、安防、智慧城市、旅游、健康、医疗卫生、交通、农业、政务、AI、食品、医院、安全

    数据可视化.模板框架.动态控件.可视化大屏.数据监管.监控平台.图表元件库.数据看板.驾驶舱.统计图表.园区.大屏展示.安防.智慧城市.旅游.健康.医疗卫生.交通.农业.政务.AI.食品.医院.数据安 ...

最新文章

  1. oracle 11g asm 磁盘组兼容属性
  2. GIt代码托管、Github Desktop和 Pycharm中代码的管理
  3. leetcode171
  4. java junit4_JUnit4使用Java5中的单元测试
  5. Centos7安装MySQL(多图)
  6. 深入浅出InfoPath——让管理员来部署InfoPath表单
  7. require js
  8. Windows下提升进程权限(转)
  9. redis数据类型语法及与java连接
  10. Sudo环境变量继承
  11. C# 读取Oracle数据库数据
  12. (十)stm32 GPIO口复用,重映射 RCC_APB2Periph_AFIO
  13. 每次遇到浏览器主页被篡改的问题,就特别气愤加头疼
  14. STM32,仿照LL库,编写FLASH的LL库(内有完成代码)(STM32F0)
  15. 以个性化为需求如何选择ITSM系统?
  16. 如何使单片机复位可靠,单片机复位电路?
  17. 【spring】 官网文档手册(附中文网址)
  18. K8S、Kubernetes发音
  19. 什么是网络爬虫,网络爬虫有什么用?
  20. 巴比特 | 元宇宙每日必读:连续七个季度出现亏损,Meta元宇宙部门Q2亏损28 亿美元,扎克伯格称这种情况可能会持续数年...

热门文章

  1. CSS概述 CSS声明
  2. VMware 安装 CentOS 7
  3. linux 脚本 ps grep,linux中PS命令和grep命令以及信号处理函数
  4. iStack详解(三)——iStack多主检测方式
  5. 使用Epoch-Based Reclamation(EBR,特定域回收的一种方法)修改 lazy-list
  6. VMware Workstation 15 解锁Mac OS安装
  7. 初学JAVA,开发环境的搭建(JDK和Eclipse的安装)
  8. 大数据奏鸣曲,听出了什么?
  9. Android开发周报:Android 8.0开始推送、微店插件化实践
  10. Linux 驱动之内核定时器