版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nanruitao10/article/details/85232667
引入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
配置文件
#若不配置可能会找到监控端点
management:
security:
enabled: false
#springboot2.x版本上根据需要进行配置,默认是health和info,同时也可以排查不要显示的端点使用
#exclude
endpoints:
web:
exposure:
include: "*"
exclude:info
验证
1.在springboot1.x下使用actuator
在启动日志你可以根据看到如下内容:
在postman中请求一下:
2.在springboot2.x下使用actuator
在springboot2.x使用actuator主要的变化是:
- 访问路径,由“/”转换为“/actuator”
- 默认只暴露health和info节点
在postman中进行访问如下:
对于原生节点的介绍
对于原生端点可分为以下三类:
- 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等于springboot密切相关的的配置类信息。
- 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如内存信息、线程池信息、HTTP请求统计等。
- 操作控制类:提供了对应用的关闭等操作类功能。
应用配置类
序号 | 请求 方式 |
端点 | 描述 |
1 | get | autoconfig | 该端点用来获取应用的自动化配置报告,其中包括所有自动化配置的候选项。同时还列出了每个候选项是否满足自动化配置的各个先决条件。可方便帮助我们找出一些自动化配置为什么没有生效的具体原因。 |
2 | get | beans | 获取应用程序所创建的所有beans |
3 | get | configprops | 获取应用中配置文件的属性信息。 |
4 | get | env | 获取应用中所有可用的环境属性,包括环境变量、jvm属性、应用的配置属性、命令行中的参数。 |
5 | get | mappings | 获取应用中所有Spring MVC的控制器映射关系报告。 |
6 | get | info | 获取一些应用自定义的信息。默认情况下,返回一个空json。可以配置info的属性,如info.app.name=hello。 |
度量指标类
序号 | 请求方式 | 端点 | 描述 |
1 | get | metrics | 返回当前应用的各类重要度量指标,比如内存、线程、垃圾回收等信息 |
2 | get | health | 获取应用的各类健康指标信息。 |
3 | get | dump | 获取程序中的线程信息 |
4 | get | trace | 获取基本的HTTP跟踪信息,使用的org.springframework.boot.actuate.trace.InMemoryTraceRepository的实现方式,始终保持最近的100记录。 |
操作控制类
序号 | 请求方式 | 端点 | 描述 |
1 | get | shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
2.x 部分更改
1.x端点 | 2.x端点 |
/actuator | 不再可用。 但是,在 management.endpoints.web.base-path 的根目录中有一个映射,它提供了到所有暴露端点的链接。 |
/auditevents | 该after参数不再需要 |
/autoconfig | 重命名为 /conditions |
/docs | 不再可用 |
/health | 现在有一个 management.endpoint.health.show-details 选项 never, always, when-authenticated,而不是依靠 sensitive 标志来确定 health 端点是否必须显示全部细节。 默认情况下,/actuator/health公开并且不显示细节。 |
/trace | 重命名为 /httptrace |
2.x中只有端点/health和/info端点是暴露的。
属性 | 默认值 |
management.endpoints.jmx.exposure.exclude | |
management.endpoints.jmx.exposure.include | * |
management.endpoints.web.exposure.exclude | |
management.endpoints.web.exposure.include | info, health |
示例:
- 您可以按如下方式公开所有端点:management.endpoints.web.exposure.include=*
- 您可以通过以下方式显式启用/shutdown端点:management.endpoint.shutdown.enabled=true
- 要公开所有(已启用)网络端点除env端点之外:
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env
参考:
- spring cloud 微服务实践
- 博客