面试官:你知道Spring Boot 监视器吗?怎么使用?
在 Spring Boot 中,监视器(Actuator)是一个用于监控和管理应用程序的模块,提供了丰富的功能和端点(endpoints),可以帮助开发人员实时查看应用程序的运行状态、性能指标和健康状况,以及执行一些管理操作。监视器模块的主要目的是让开发人员更方便地监控和管理应用程序,帮助他们发现潜在问题、优化性能和提高可靠性。
Spring Boot提供了Spring-Boot-Start-Actuator 自动配置模块用于支持 SpringBoot 应用的监控。Spring Boot Actuator模块提供了生产级别的功能,比如健康检查、审计、指标收集、HTTP跟踪等,帮助我们监控和管理Spring Boot应用程序。
这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能都可以通过HTTP和JMX访问。因为是暴露内部信息的特性,Actuator也可以和一些外部的应用监控程序结合(Graphite、Prometheus、Zabbix、cAdvisor、Riemann等)更友好的提供仪表板、图形图表、分析与预警。可帮助你通过一个统一友好的界面,监视和管理你的应用程序。
POM引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
application配置
需要在application配置文件中,配置具体的Actuator应用;
Spring boot 2.6以后的版本需要手动开启info配置,因为info默认值是false
server:
port: 8080 #服务端口
info:
application:
name: "@project.name@" #从pom.xml中获取
description: "@project.description@"
version: "@project.version@"
management:
server:
port: 8501 #指定监听端口,不能指定则与server端口一致。
endpoints: #启动所有监控
web:
exposure:
include: '*'
info: # spring-boot 2.6以后info默认值为false.需手动开启
env:
enabled: true
配置详解
spring-boot-starter-actuator 自动配置模块默认提供了很多 endpoint,虽然自动配置模块名为 spring-boot-starter-actuator,但实际上这些 endpoint 可以按照“监”和“控”划分为两类:
Actuator监控项