spring spring boot actuator监控与管理
spring-boot-starter-actuator模块为spring boot构建的应用提供了一系列用于监控的端点。
添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
actuator包括的原生端点主要包括以下三类:
1、**应用配置类:**获取应用程序加载的引用配置、环境变量、自动化配置报告等与spring boot应用密切相关的配置类信息。
2、**度量指标类:**获取应用程序运行过程中用于监控的度量指标,比如内存信息、线程池信息、HTTP请求统计等。
3、**操作控制类:**提供对应用的关闭等操作类功能。
1、应用配置类主要端点
/autoconfig:该端点用来获取应用的自动化配置报告,其中包括所有自动化配置的候选项。同时还列出了每个候选项自动化配置的各个先决条件是否满足。所以,该端点可以帮助我们方便的找到一些自动化配置为什么没有生效的具体原因。该报告内容将自动化配置内容分为两部分:
positiveMatches
中返回的是条件匹配成功的自动化配置negativeMatches
中返回的是条件匹配不成功的自动化配置
/beans:该端点用来获取应用上下文中创建的所有Bean。
- bean:Bean的名称
- scope:Bean的作用域
- type:Bean的Java类型
- reource:class文件的具体路径
- dependencies:依赖的Bean名称
/configprops:该端点用来获取应用中配置的属性信息报告。从下面该端点返回示例的片段中,我们看到返回了关于该短信的配置信息,prefix
属性代表了属性的配置前缀,properties
代表了各个属性的名称和值。所以,我们可以通过该报告来看到各个属性的配置路径,比如我们要关闭该端点,就可以通过使用endpoints.configprops.enabled=false
来完成设置。
/env:该端点与/configprops
不同,它用来获取应用所有可用的环境属性报告。包括:环境变量、JVM属性、应用的配置配置、命令行中的参数。从下面该端点返回的示例片段中,我们可以看到它不仅返回了应用的配置属性,还返回了系统属性、环境变量等丰富的配置信息,其中也包括了应用还没有没有使用的配置。所以它可以帮助我们方便地看到当前应用可以加载的配置信息,并配合@ConfigurationProperties
注解将它们引入到我们的应用程序中来进行使用。另外,为了配置属性的安全,对于一些类似密码等敏感信息,该端点都会进行隐私保护,但是我们需要让属性名中包含:password、secret、key这些关键词,这样该端点在返回它们的时候会使用*
来替代实际的属性值。
/mappings:该端点用来返回所有Spring MVC的控制器映射关系报告。从下面的示例片段中,我们可以看该报告的信息与我们在启用Spring MVC的Web应用时输出的日志信息类似,其中bean
属性标识了该映射关系的请求处理器,method
属性标识了该映射关系的具体处理类和处理函数。
/info:该端点用来返回一些应用自定义的信息。默认情况下,该端点只会返回一个空的json内容。我们可以在application.properties
配置文件中通过info
前缀来设置一些属性,比如下面这样
info.app.name=spring-boot-hello
info.app.version=v1.0.0
再访问 /info
端点,我们可以得到下面的返回报告,其中就包含了上面我们在应用自定义的两个参数。{
"app": {
"name": "spring-boot-hello",
"version": "v1.0.0"
}
}
2、度量指标类主要端点
/metrics:该端点用来返回当前应用的各类重要度量指标,比如:内存信息、线程信息、垃圾回收信息等。我们还可以通过/metrics/{name}
接口来更细粒度的获取度量信息,比如我们可以通过访问/metrics/mem.free
来获取当前可用内存数量。
/health:用来获取应用的各类健康指标信息
/dump:该端点用来暴露程序运行中的线程信息。它使用java.lang.management.ThreadMXBean
的dumpAllThreads
方法来返回所有含有同步信息的活动线程详情。
/trace:该端点用来返回基本的HTTP跟踪信息。默认情况下,跟踪信息的存储采用org.springframework.boot.actuate.trace.InMemoryTraceRepository
实现的内存方式,始终保留最近的100条请求记录。
2、操作控制类主要端点
在原生端点中,只提供了一个用来关闭应用的端点:/shutdown
。我们可以通过如下配置开启它:
endpoints.shutdown.enabled=true
在配置了上述属性之后,只需要访问该应用的 /shutdown
端点就能实现关闭该应用的远程操作。
/routes:返回网关的路由列表。
management.security.enabled=false 关闭对监控端点的权限控制
还没有评论,来说两句吧...