前言

  在一些秒杀案例进入实际生产环境中,需要实时或定期监控服务的可用性。Spring Boot 的 actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。

配置实现

在pom.xml里引入依赖如下:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.yml配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
management:
endpoints:
web:
exposure:
include: "*" #启动监控所有节点
endpoint:
health:
show-details: always #显示健康状态的具体信息
server:
port: 8088 #监控的HTTP端口 (如果不指定,则使用和Server相同的端口)

#自定义显示信息
info:
app:
name: springboot健康监控
author: Garen
url: https://blog.hdqyf.club
email: 610717159@qq.com
version: v1.0.0

Actuator 在 Spring 1.X版本与Spring 2.X的不同

keys 的配置改变

1.X 2.X
endpoints.<id>.* management .endpoint .<id>.*
endpoints.cors.* management .endpoints .web.cors.*
endpoints.jmx.* management .endpoints .jmx.*
management.address management .server .address
management.context-path management .server .servlet .context-path
management.ssl.* management .server .ssl.*
management.port management .server .port

基本路径不同

  1. 所有 endpoints 默认情况下都已移至 /actuator。就是多了跟路径 actuator
  2. 上个版本中的 management/context-path:management/port: 改为 :
1
2
3
4
5
management:
server:
port: 8088
servlet:
context-path: /xxx # 只有在设置了 management.server.port 时才有效

另外,您还可以使用新的单独属性 management.endpoints.web.base-path 为管理端点设置基本路径。

例如,如果你设置management.server.servlet.context-path=/managementmanagement.endpoints.web.base-path=/application,你就可以在下面的路径到达终点健康:/management/application/health

如果你想恢复 1.X 的行为(即具有/health代替/actuator/health),设置以下属性:management.endpoints.web.base-path=/

访问url不同

1.X 的时候属性
HTTP 方法 路径 描述
GET /autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
GET /configprops 描述配置属性(包含默认值)如何注入Bean
GET /beans 描述应用程序上下文里全部的Bean,以及它们的关系
GET /dump 获取线程活动的快照
GET /env 获取全部环境属性
GET /env/{name} 根据名称获取特定的环境属性值
GET /health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供
GET /info 获取应用程序的定制信息,这些信息由info打头的属性提供
GET /mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系
GET /metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
GET /metrics/{name} 报告指定名称的应用程序度量值
GET /trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)
POST /shutdown 关闭应用程序,要求endpoints. shutdown. enabled设置为true
2.X 部分更改
1.X 端点 2.X 端点(改变)
/actuator 不再可用。 但是,在 management .endpoints .web .base-path 的根目录中有一个映射,它提供了到所有暴露端点的链接。
/auditevents after参数不再需要
/autoconfig 重命名为 /conditions
/docs 不再可用
/trace 重命名为 /httptrace
/health 现在有一个 management .endpoint .health .show-details 选项 never, always, when-authenticated,而不是依靠 sensitive 标志来确定 health 端点是否必须显示全部细节。 默认情况下,/actuator /health公开并且不显示细节。

默认端点 path 前面多了一级 /actuator

同时注意只有端点/health/info端点是暴露的。

测试

随便访问一个端点,下面以访问info端点为例:


ps:因作者能力有限,有错误的地方请见谅

  • 喜欢这篇文章的话可以用快捷键 Ctrl + D 来收藏本页

最后更新: 2018年10月22日 16:38

原始链接: https://blog.hdqyf.club/2018/10/22/20181022-SpringBoot-Actuator健康监控/

× 请我吃糖~
打赏二维码