Spring Boot Actuator 健康信息

Spring Boot Actuator

FROM:https://springdoc.cn/spring-boot/actuator.html#actuator

健康信息:https://springdoc.cn/spring-boot/actuator.html#actuator.endpoints.health

K8s探针(springboot 2.3.3及以上版本):https://springdoc.cn/spring-boot/actuator.html#actuator.endpoints.kubernetes-probes

健康信息:

在 Spring Boot Actuator 中,/actuator/health 端点返回一个表示应用健康状况的对象,其中 status 字段是核心部分,它表示整个应用或各个组件的整体健康状态。status 的可能值包括但不限于:

  • UP: 表示应用及所有检查的组件均处于正常运行状态。
  • DOWN: 表示应用或至少有一个组件存在问题,无法正常运行。当任何内置或自定义的 Health Indicator 报告状态为 DOWN 时,整体 status 也将变为 DOWN
  • OUT_OF_SERVICE: 表示应用的某个组件已主动标记为维护模式或暂时不可用。
  • UNKNOWN: 表示由于某种原因,健康状况无法确定。

响应体还可能包含更详细的 components 部分,显示各个单独组件的健康状态和详细信息。

例如:

json 复制代码
{
  "status": "UP",
  "components": {
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 250182889472,
        "free": 31169568768,
        "threshold": 10485760
      }
    },
    "db": {
      "status": "UP",
      "details": {
        "database": "MySQL",
        "helloWorld": 1
      }
    }
  }
}

在上面的示例中,整个应用的 statusUP,因为所有列出的组件(如磁盘空间 diskSpace 和数据库 db)也都处于 UP 状态。如果 db 组件出现问题导致其 status 变为 DOWN,则整个应用的 status 也将随之变更为 DOWN

Health Status Response Status
DOWN 503(Service Unavailable)
OUT_OF_SERVICE 503(Service Unavailable)
UP 200(OK)
UNKNOWN

健康信息详情展示级别:

说明
never 细节从不显示。
when-authorized 细节只显示给授权用户。 授权的角色可以通过使用 management.endpoint.health.roles 进行配置。
always 详情显示给所有用户。

health端点 自动配置的HealthIndicators

Key Name 说明
cassandra CassandraDriverHealthIndicator 检查Cassandra数据库是否已经启动。
couchbase CouchbaseHealthIndicator 检查Couchbase集群是否已经启动。
db DataSourceHealthIndicator 检查是否可以获得与DataSource的连接。
diskspace DiskSpaceHealthIndicator 检查磁盘空间是否不足。
elasticsearch ElasticsearchRestHealthIndicator 检查Elasticsearch集群是否已经启动。
hazelcast HazelcastHealthIndicator 检查Hazelcast服务器是否已经启动。
influxdb InfluxDbHealthIndicator 检查InfluxDB服务器是否已经启动。
jms JmsHealthIndicator 检查一个JMS代理是否已经启动。
ldap LdapHealthIndicator 检查一个LDAP服务器是否正常。
mail MailHealthIndicator 检查一个邮件服务器是否正常。
mongo MongoHealthIndicator 检查Mongo数据库是否已经启动。
neo4j Neo4jHealthIndicator 检查Neo4j数据库是否已经启动。
ping PingHealthIndicator 总是响应 UP 。
rabbit RabbitHealthIndicator 检查一个Rabbit服务器是否已经启动。
redis RedisHealthIndicator 检查Redis服务器是否已经启动。

在适当的时候,Spring Boot会自动配置下表中列出的 HealthIndicators。 你也可以通过配置 management.health.key.enabled 来启用或停用所选指标。

你可以通过设置 management.health.defaults.enabled 属性来禁用它们。

额外的 HealthIndicators 是可用的,但在默认情况下不启用(springboot 2.3.3及以上版本可用)。

Key Name 说明
livenessstate LivenessStateHealthIndicator 显示 "Liveness" 应用程序的可用性状态。
readinessstate ReadinessStateHealthIndicator 暴露 "Readiness" 应用程序的可用性状态。
相关推荐
ybq1951334543110 分钟前
Redis-主从复制-分布式系统
java·数据库·redis
weixin_4723394642 分钟前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel
灵犀学长43 分钟前
EasyExcel之SheetWriteHandler:解锁Excel写入的高阶玩法
spring boot·excel
小毛驴8501 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
zwjapple1 小时前
docker-compose一键部署全栈项目。springboot后端,react前端
前端·spring boot·docker
DKPT2 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
好奇的菜鸟3 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°3 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
DuelCode4 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
优创学社24 小时前
基于springboot的社区生鲜团购系统
java·spring boot·后端