指标监控
Spring Boot Actuator
1、将应用程序推送到生产环境时,监控和管理应用程序,可以选择使用 HTTP 端点或 JMX 来管理和监视应用程序,审核,运行状况和指标收集也可以自动应用到应用程序
2、引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
执行器端点
1、访问:http://localhost:8080/actuator/**
2、类型
(1)与技术无关的端点
| ID | 描述 | 默认情况下启用 |
|---|---|---|
|
|
公开当前应用程序的审核事件信息。 需要一个
AuditEventRepository组件。 |
Yes |
|
|
显示应用程序中所有Spring beans的完整列表。 |
Yes |
|
|
暴露可用的缓存。 |
Yes |
|
|
显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。 |
Yes |
|
|
显示所有 |
Yes |
|
|
公开 Spring |
Yes |
|
|
显示已应用的任何Flyway数据库迁移。 需要一个或多个
Flyway组件。 |
Yes |
|
|
显示应用程序运行状况的健康信息。 |
Yes |
|
|
显示HTTP跟踪信息(默认情况下,最后100个HTTP请求 - 响应交换)。 需要一个
HttpTraceRepository组件。 |
Yes |
|
|
显示任意应用信息。 |
Yes |
|
|
显示Spring Integration图表。 需要依赖
spring-integration-core。 |
Yes |
|
|
显示和修改应用程序中记录器的配置。 |
Yes |
|
|
显示已应用的任何Liquibase数据库迁移。 需要一个或多个
Liquibase组件。 |
Yes |
|
|
显示当前应用程序的“指标”信息。 |
Yes |
|
|
显示所有 |
Yes |
|
|
显示应用程序中的计划任务。 |
Yes |
|
|
允许从支持Spring Session的会话存储中检索和删除用户会话。使用Spring Session对响应式Web应用程序的支持时不可用。 |
Yes |
|
|
允许应用程序正常关闭。 需要使用
SpringApplication进行配置BufferingApplicationStartup。 |
No |
|
|
执行线程转储。 |
Yes |
(2)Web 应用程序(Spring MVC,Spring WebFlux 或 Jersey),则可以使用以下附加端点
| ID | 描述 | 默认情况下启用 |
|---|---|---|
|
|
返回 |
Yes |
|
|
通过HTTP公开JMX beans(当Jolokia在类路径上时,不适用于WebFlux)。 需要引入依赖
jolokia-core。 |
Yes |
|
|
返回日志文件的内容(如果已设置 |
Yes |
|
|
以可由Prometheus服务器抓取的格式公开指标。 需要依赖
micrometer-registry-prometheus。 |
Yes |
3、暴露情况
(1)默认
| ID | JMX | Web |
|---|---|---|
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
Yes |
|
|
N/A |
No |
|
|
Yes |
No |
|
|
Yes |
Yes |
|
|
Yes |
No |
|
|
N/A |
No |
|
|
N/A |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
N/A |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
|
|
Yes |
No |
(2)更改:include 属性列出公开端点 ID,exclude 属性列出不应公开端点 ID,exclude 属性优先 include 属性,include、exclude 属性都可以配置端点 ID 列表;* 可用于选择所有端点
| Property | 默认 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
4、开启 / 禁用
(1)默认情况下,启用除shutdown之外的所有端点
(2)开启某个端点
management:
endpoint:
<id>:
enabled: true
(3)禁用某个端点
management:
endpoint:
<id>:
enabled: false
(4)开启所有端点
management:
endpoints:
enabled-by-default: true
(5)禁用所有端点
management:
endpoints:
enabled-by-default: false
5、Health Endpoint
(1)健康检查端点
(2)一般用于云平台,平台定时检查应用的健康状况,需要 Health Endpoint 可以为平台返回当前应用的一系列组件健康状况的集合
(3)返回的结果,应该是一系列健康检查后的一个汇总报告
(4)很多的健康检查默认自动配置,如:数据库、Redis 等
(5)可以很容易的添加自定义的健康检查机制
(6)UP:健康;DOWN:不健康
(7)所有组件为 UP,应用程序才为 UP;任一组件为 DOWN,应用程序为 DOWN
6、Metrics Endpoint
(1)提供详细的、层级的、空间指标信息,这些信息可以被 pull(主动推送)或者 push(被动获取)方式获取
(2)通过 Metrics 对接多种监控系统
(3)简化核心 Metrics 开发
(4)添加自定义 Metrics 或扩展已有 Metrics
可视化监控工具
1、引入 Spring Boot Admin Server 启动器依赖
<!-- 监控功能 -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.7.0</version>
</dependency>
<!-- Web场景 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2、主配置类添加 @EnableAdminServer,开启 Spring Boot Admin Server 功能
3、引入 Spring Boot Admin Client 依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.7.0</version>
</dependency>
4、保证端点的安全性
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
5、通过配置 Spring Boot Admin Server 的 URL,启用 SBA 客户端
#注册Spring Boot Admin Server的URL
spring:
boot:
admin:
client:
url: http://localhost:8080

浙公网安备 33010602011771号