前言
我们的微服务在云上部署以后都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。
DEMO
新增场景启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
执行器端点(endpoints)可用于监控应用及与应用进行交互,Spring Boot包含很多内置的端点,你也可以添加自己的。例如,health端点提供了应用的基本健康信息。 端点暴露的方式取决于你采用的技术类型,大部分应用选择HTTP监控,端点的ID映射到一个URL。例如,health端点默认映射到/health。
启动项目后访问,在这里可以看见此时允许访问哪些执行器端点。
比如说我们访问/actuator/health 可以查看当前项目运行状况
以下贴出各个端点有哪些作用
ID | 描述 |
| 暴露当前应用程序的审核事件信息。需要一个 |
| 显示应用程序中所有Spring Bean的完整列表。 |
| 暴露可用的缓存。 |
| 显示自动配置的所有条件信息,包括匹配或不匹配的原因。 |
| 显示所有 |
| 暴露Spring的属性 |
| 显示已应用的所有Flyway数据库迁移。 |
| 显示应用程序运行状况信息。 |
| 显示HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应)。需要一个 |
| 显示应用程序信息。 |
| 显示Spring |
| 显示和修改应用程序中日志的配置。 |
| 显示已应用的所有Liquibase数据库迁移。需要一个或多个 |
| 显示当前应用程序的“指标”信息。 |
| 显示所有 |
| 显示应用程序中的计划任务。 |
| 允许从Spring Session支持的会话存储中检索和删除用户会话。需要使用Spring Session的基于Servlet的Web应用程序。 |
| 使应用程序正常关闭。默认禁用。 |
| 显示由 |
| 执行线程转储。 |
那么如何才能使用所有的端点?? 只需要在application.properties文件中加入以下
#暴露所有端点信息
management.endpoints.enabled-by-default=true
#以WEB方式暴露
management.endpoints.web.exposure.include=*
再次访问
但是很多我们用不上,只想放出部分端口,只需在application.properties中如下修改
#关闭暴露所有端口
management.endpoints.enabled-by-default = false
#启用info端口
management.endpoint.info.enabled = true
management.endpoint.caches.enabled=true
management.endpoints.web.exposure.include=*
这部分内容还是很多的,本文记录也只是冰山一角,有需要可以去官方文档查阅:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready
SpringBoot Admin 可视化
在刚刚的项目中添加依赖
<!-- spring-boot-admin-starter-client -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.3.1</version>
</dependency>
在属性文件中添加: 注意这里填写的是服务端地址
这里先另起一个项目,作为服务端,引入依赖
<!-- spring-boot-admin-starter-server -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.3.1</version>
</dependency>
在启动类上添加注解来启动此服务
@EnableAdminServer
两个项目一起运行起来,访问服务端,可以看见客户端已经正常注册进来了。
通过应用墙点进来之后可以看见更多详细信息