SpringBoot - 13指标监控Actuator
(1)使用Actuator检查与监控
(1.1)修改POM文件,引入GAV
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
(1.2)修改配置文件
management:
endpoints:
web:
base-path: /actuator // 配置访问端点的根路径
(1.3)测试
2020-12-30 22:01:06.561 INFO 7492 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
2020-12-30 22:01:06.566 INFO 7492 --- [ restartedMain] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator'
(1.4)应用配置类
management:
endpoints:
web:
base-path: /actuator
exposure:
include: "*" // 配置开启其他的端点URI; 开启所有的端点访问("*")
# exclude: // 排除端点
# - env
# - beans
# - info
配置属性
- /configprops: 描述配置属性(包含默认值)
- prefix属性代表了属性的配置前缀; properties 代表了各个属性的名称和值。
- /beans: 描述应用程序上下文里全部的Bean,以及他们的关系。
- bean:Bean的名称 ; scope: Bean的 作用域
- type:Bean的Java类型 ; resource: class文件的具体路径
- dependencies: 依赖的Bean名称
- /env: 获取应用所有可用的环境属性报告,包括:环境变量、JVM属性、应用的配置、命令行中的参数。
- /env/{name}: 根据名称获取特定的环境属性值。
- /info: 返回应用自定义的信息。默认情况下,只返回空json内容。 在application.yml中通过info设置属性。
- /metrics: 报告各种应用程序的度量信息, 比如内存用量、 HTTP请求计数、线程信息、垃圾回收信息等。
- 系统信息: 包括处理器数量processors、运行时间uptime和instance.uptime、系统平均负载systemload.average。
- mem.*: 内存概要信息。包括分配给应用的总内存数量以及当前空闲的内存数量。信息来自java.lang.Runtime。
- heap.*: 堆内存使用情况。
- 来自java.lang.management.MemoryMXBean接口中getHeapMemoryUsage方法获取的java.lang.management.MemoryUsage。
- nonheap.*: 非堆内存使用情况。
- 来自 java.lang.management.MemoryMXBean接口中getNonHeapMemoryUsage方法获取的java.lang.management.MemoryUsage。
- threads.*: 线程使用情况。包括线程数、守护线程数(daemon)、线程峰值(peak)等,来自java.lang.management.ThreadMXBean。
- classes.*: 应用加载和卸载的类统计。来自java.lang.management.ClassLoadingMXBean。
- gc.*: 垃圾收集器的详细信息。 来自java.lang.management.GarbageCollectorMXBean。
- 包括垃圾回收次数 gc.ps_scavenge.count、垃圾回收消耗时间gc.ps_scavenge.time、
- 标记-清除算法的次数gc.ps_marksweep.count、标记-清除算法的消耗时间gc.ps_marksweep.time。
- httpsessions.*: Tomcat容器的会话使用情况。包括最大会话数httpsessions.max和活跃会话数httpsessions.active。
- 这些度量指标信息仅在引入了嵌入式Tomcat作为应用容器的时候才会提供。
(2)使用可视化监控应用Spring Boot Admin
Spring Boot Admin的使用需要搭建 服务端 与 客户端。
- 服务端: 独立的项目,会将搜集到的数据在自己的图像界面中展示。
- 客户端:需要监控的项目。
- 对应关系: 一个服务端可以监控多个客户端。
(2.1)搭建服务端
(2.1.1)修改POM文件,引入GAV坐标(Spring Boot 2.3.4 - Spring Boot Admin 2.3.1)
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.3.1</version> </dependency>
(2.1.2)注解开启
@SpringBootApplication @EnableAdminServer // 开启Spring Boot Admin服务端 public class SpringBoot11JunitApplication {
(2.1.3)修改配置文件
server:
port: 9090
(2.2)搭建客户端
(2.2.1)修改POM文件
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.3.1</version> </dependency>
(2.2.2)修改配置文件
spring:
boot:
admin:
client:
url: http://localhost:9090/ // 指定服务端的访问地址
(2.3)测试
查看单个实例的监控数据