actuator--基础--6.1--端点解析--health端点
actuator–基础–6.1–端点解析–health端点
代码位置
https://gitee.com/DanShenGuiZu/learnDemo/tree/master/actuator-learn/actuator01
1、/health 配置
1.1、当我们访问/health端点,返回是一个汇总的信息
http://127.0.0.1:8080/actuator/health
status的值有2个
1. {“status”:“UP”}
2. {“status”:“DOWN”}
1.2、查看详细的应用健康信息
1.2.1、配置
# 查看详细的应用健康信息
# never:不展示详细信息,up或者down的状态,默认配置
# when-authorized:详细信息将会展示给通过认证的用户。授权的角色可以通过management.endpoint.health.roles配置
# 对所有用户暴露详细信息
management.endpoint.health.show-details=always
1.2.2、测试
http://127.0.0.1:8080/actuator/health
从上面的应用的详细健康信息发现,健康信息包含磁盘空间、网络。
如果我们有配置redis,mysql,那么返回的信息就会有对应redis和mysql的信息,因为actuator会自动给监控起来。
1.3、自动配置的健康指示器
- /health端点有很多自动配置的健康指示器:如redis、rabbitmq、db等组件。
- 当你的项目有依赖对应组件的时候,这些健康指示器就会被自动装配,继而采集对应的信息。
- 如上面的 diskSpace 节点信息就是DiskSpaceHealthIndicator类在起作用。
1.4、自动配置的健康指示器 对应的实现类
当如上的组件有一个状态异常,应用服务的整体状态即为down。我们也可以通过配置禁用健康监测。
禁用某个组件的健康监测。
# 禁用mongodb组件
management.health.mongo.enabled: false
禁用所有自动配置的健康指示器
# 禁用所有自动配置的健康指示器
management.health.defaults.enabled: false
2、/health原理
- 默认情况下,Spring boot的健康信息都是从ApplicationContext中的各种HealthIndicator Beans汇总而成的
- Spring boot框架中包含了大量的HealthIndicators的实现类
- 你可以实现自己的健康状态。
2.1、 汇总算法
- 设置状态码顺序:setStatusOrder(Status.DOWN, Status.OUT_OF_SERVICE, Status.UP, Status.UNKNOWN)。
- 过滤掉不能识别的状态码。
- 如果无任何状态码,整个spring boot应用的状态是 UNKNOWN。
- 将所有收集到的状态码按照 1 中的顺序排序。
- 返回有序状态码序列中的第一个状态码,作为整个spring boot应用的状态。
2.2、 汇总算法的源代码
org.springframework.boot.actuate.health.OrderedHealthAggregator。
2.3、 Spring boot框架自带的 HealthIndicators
2.4、 禁用HealthIndicators
禁用某个组件的健康监测。
# 禁用某个(xxxx) HealthIndicators
management.health.xxxx.enabled: false
禁用所有的 HealthIndicators
# 禁用所有自动配置的健康指示器
management.health.defaults.enabled: false
3、自定义 HealthIndicator
- 有时候需要提供自定义的健康状态检查信息,你可以通过实现HealthIndicator的接口来实现,并将该实现类注册为spring bean。
- 你需要实现其中的health()方法,并返回自定义的健康状态响应信息,该响应信息应该包括一个状态码和要展示详细信息。
3.1、自定义 HealthIndicator
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;@Component
public class MYHealthIndicator implements HealthIndicator {@Overridepublic Health health() {// 执行一些特定的监控检查int errorCode = check();if (errorCode != 0) {return Health.down().withDetail("Error Code", errorCode).build();}return Health.up().build();}// 执行一些特定的监控检查private int check() {return 0;}
}
3.2、自定义状态类型
除了Spring boot定义的几个状态类型,我们也可以自定义状态类型,用来表示一个新的系统状态。
在这种情况下,你还需要实现接口 HealthAggregator ,或者通过配置 management.health.status.order 来继续使用HealthAggregator的默认实现。
举例
在你自定义的健康检查实现类 MYHealthIndicator中,使用了自定义的状态类型FATAL,为了配置该状态类型的严重程度,你需要在application的配置文件中添加如下配置:
management.health.status.order=FATAL, DOWN, OUT_OF_SERVICE, UNKNOWN, UP
在做健康检查时,响应中的HTTP状态码反应了整体的健康状态,(例如,UP 对应200, 而 OUT_OF_SERVICE 和 DOWN 对应 503)。
同样,你也需要为自定义的状态类型设置对应的HTTP状态码,例如,下面的配置可以将 FATAL 映射为 503(服务不可用):
management.health.status.http-mapping.FATAL=503
对应代码
3.3、如果需要更多的控制
自定义自己的 HealthStatusHttpMapper bean。
3.4、内置健康状态类型对应的HTTP状态码列表
actuator--基础--6.1--端点解析--health端点相关推荐
- Java基础之多态深入解析
Java基础之多态深入解析 多态的基本概念 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性.简单的说:就是用基类的引用指向子类的对象. 多态的优点 消除类型之间的耦合关系 ...
- Java基础之String深入解析
Java基础之String深入解析 以下是本文目录大纲 生成地方和地址指向,intern()方法 String可否被继承? 1. 生成地方和地址指向,intern()方法 先看代码 String s1 ...
- python网页结构分析_Python爬虫基础之网页组成解析
当我们用浏览器访问网站时,每个网页的大不相同,你是否想过它为什么会呈现多种不同的样式呢?就让我们一起了解一下网页的基本组成.结构和节点等内容吧! 网页的组成 网页可以分为三大部分--HTML.CSS和 ...
- cisco 基础配置命令中文解析 1
命令 描述 <?xml:namespace prefix = o ns = "urn:schemas-microsoft- ...
- 2021年施工员-设备方向-通用基础(施工员)试题及解析及施工员-设备方向-通用基础(施工员)模拟试题
题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:美容师(技师)试题及解析参考答案及美容师(技师)考试试题解析是安全生产模拟考试一点通题库老师及美容师(技师)操作证已考过的学员汇总 ...
- 2021国开计算机应用基础形考任务答案,2021电大计算机应用基础形考试题答案解析.doc...
精编范文 第 PAGE1 页 /共 NUMPAGES1页 20__电大计算机应用基础形考试题答案解析 温馨提示:本文是笔者精心整理编制而成,有很强的的实用性和参考性,下载完成后可以直接编辑,并根据自己 ...
- R语言-HTML 基础与R语言解析
###6.1 HTML 基础与R语言解析 #额外备注:Python中的scrapy框架,爬虫 #HTML #hyper text markup language #超文本标记语言 ##6.1HTML的 ...
- 2020年市政方向-通用基础(质量员)答案解析及市政方向-通用基础(质量员)找答案
题库来源:安全生产模拟考试一点通公众号小程序 2020年市政方向-通用基础(质量员)答案解析及市政方向-通用基础(质量员)找答案,包含市政方向-通用基础(质量员)答案解析答案和解析及市政方向-通用基础 ...
- 2021年质量员-市政方向-通用基础(质量员)最新解析及质量员-市政方向-通用基础(质量员)证考试
题库来源:安全生产模拟考试一点通公众号小程序 质量员-市政方向-通用基础(质量员)最新解析根据新质量员-市政方向-通用基础(质量员)考试大纲要求,安全生产模拟考试一点通将质量员-市政方向-通用基础(质 ...
最新文章
- 也许你不知道的c#基本数据类型及其默认值
- nginx介绍(三) - 虚拟主机
- ASP.NET的地址重写“.NET研究”(URLRewriter)实现原理及代码示例
- 201521123032 《Java程序设计》第7周学习总结
- Fragment 横竖屏切换问题
- Linux:多进程、多线程服务器的实现解析(有图有代码有真相!!!)
- nginx服务器上 font awesome 字体不能正常显示
- js获取屏幕宽度方法大全
- android开发工具 go,轻松搭建基于go1.5开发Android应用的环境 | Go语言中文网 | Golang中文社区 | Golang中国...
- narwal机器人_Narwal云鲸扫地机器人自清洗加压拖,省心省力省时
- 将 PDF 文件拆分为多个同样页数 pdf 文件的 Windows Powershell 脚本
- 全球及中国光电传感器行业商业模式分析及投资风险预测2022年版
- 安 卓APP隐私政策检测自查评估
- HTTP-PATCH请求
- hadoop学习-1
- 记录 2015 年年初跳槽的经历!
- 网络调试助手-程序设计-PyQt5实战 (Python socket GUI)
- 用c#输出正九九乘法表_利用C#怎么输出九九乘法表
- Matlab中 strcmp函数使用
- {2018.4.21}荀(gou)彧(huo)同学的函数与排序整合
热门文章
- 关于IE非安全更新带来flash和ActivX不能激活的解决办法(zt)
- 51nod题解 1006 最长公共子序列LCS
- vue 获取用户位置 高德_Vue使用高德地图
- iGuard简单突破
- 永福读《天才在左,疯子在右》
- win7系统计算机虚拟内存不足,Win7系统虚拟内存不足的应对办法
- Cisco RV320未经身份验证的配置导出
- 股票挂钩产品的设计、定价和避险原理
- 种子是down.php,[原创作品][PHP]BT种子打包推送小神器~~
- 马丁.福勒微服务架构博文译文