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" 应用程序的可用性状态。
相关推荐
better_liang5 小时前
每日Java面试场景题知识点之-消息队列MQ核心场景与实战
java·面试·kafka·消息队列·rabbitmq·rocketmq·mq
小江的记录本5 小时前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
小马爱打代码5 小时前
Spring源码 第四篇:Spring 5 源码深度拆解:AOP 全流程核心原理
java·后端·spring
better_liang5 小时前
每日Java面试场景题知识点之-SpringBoot启动流程
java·面试·springboot·源码解析·启动流程
RyFit6 小时前
Java + AI 实战:Spring AI 从入门到企业级落地
java·人工智能·spring
ServBay6 小时前
2026 Mac 本地大模型部署深度解析与混合架构指南
后端·macos·aigc
一拳一个娘娘腔6 小时前
【SRC漏洞挖掘系列】第10期:GraphQL & API 安全 —— 现代 API 的“裸奔”时代
后端·安全·graphql
ZhengEnCi7 小时前
01-如何监听接口调用情况?
java·spring boot·后端
JAVA面经实录9178 小时前
MyBatis学习体系
java·mybatis
java1234_小锋8 小时前
在 Spring AI 中如何实现函数调用(Function Calling)?请说明其基本原理和应用场景。
java·人工智能·spring