转自:https://www.jianshu.com/p/f540d6e6b264
Spring Boot 提供了运行时的应用监控和管理功能,我们可以通过http、JMX进行操作。
全部章节传送门:
Spring Boot学习笔记(一):Spring Boot 入门基础
Spring Boot学习笔记(二):Spring Boot 运行原理
Spring Boot学习笔记(三):Spring Boot Web开发
Spring Boot学习笔记(四):Spring Boot 数据访问
Spring Boot学习笔记(五):Spring Boot 企业级开发
Spring Boot学习笔记(六):Spring Boot 应用监控
常见端点介绍
Spring Boot 2.0提供的常用端点如下所示。
序号 | 端点名 | 描述 | 默认开启(Web) | 默认开启(JMX) |
---|---|---|---|---|
1 | actuator | 所有端点的列表,需加入spring HATEOAS支持 | 是 | 是 |
2 | auditevents | 显示应用暴露的审计事件 (比如认证进入、订单失败) | 是 | 否 |
3 | info | 显示应用的基本信息 | 是 | 是 |
4 | health | 显示应用的健康状态 | 是 | 是 |
5 | metrics | 显示应用多样的度量信息 | 否 | 是 |
6 | loggers | 显示和修改配置的loggers | 否 | 是 |
7 | logfile | 返回log file中的内容(如果logging.file或者logging.path被设置) | 否 | 不适用 |
8 | httptrace | 显示HTTP足迹,最近100个HTTP request/repsponse | 否 | 是 |
9 | env | 显示当前的环境特性 | 否 | 是 |
10 | flyway | 显示数据库迁移路径的详细信息 | 否 | 是 |
11 | shutdown | 让你逐步关闭应用 | 否 | 是 |
12 | mappings | 显示所有的@RequestMapping路径 | 否 | 是 |
13 | scheduledtasks | 显示应用中的调度任务 | 否 | 是 |
14 | threaddump | 执行一个线程dump | 否 | 不适用 |
15 | heapdump | 返回一个GZip压缩的JVM堆dump | 否 | 不适用 |
配置端点
默认情况下,所有的端点都是打开的,除了 shutdown 端点。可以通过 management.endpoint.<id>.enabled
的值设置为true
或者false
。
例如,想要打开 shutdown 端点,可以在application.properties中配置:
management.endpoint.shutdown.enabled=true
默认情况下,所有的端点都可以通过JMX查看,而只有health端点和info端点可以通过HTTP查看。我们可以通过配置进行修改。
management.endpoints.web.exposure.include=health,info
management.endpoints.web.exposure.exclude=
management.endpoints.jmx.exposure.include=*
management.endpoints.jmx.exposure.exclude=
查看端点
创建 Spring Boot 项目,添加 Actuator、Web和HATEOAS依赖。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.wyk</groupId>
<artifactId>actuatordemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>actuatordemo</name>
<description>Demo project for Spring Boot Actustor</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin