一:环境准备.
1. Chrome浏览器,JSONView插件,SpringBoot框架,Maven.
JSONView插件的安装:安装教程.(用于美化Json输出的).
SpringBoot框架的版本:1.5.10.RELEASE.
2. Maven依赖添加.
org.springframework.boot
spring-boot-starter-actuator
3. application.properties中添加如下:(开启性能指标)这个其实是actuator插件默认包含的,并且开启的.
endpoints.metrics.enabled=true
4. 启动SpringBoot程序,然后浏览器访问如下.(我修改的端口是8082)
发现访问异常了.阅读错误提示信息发现是,访问授权的问题.在application.properties中将管理授权关闭了,默认是开启的.
management.security.enabled=false
5. 然后重新启动程序.
上面包含了大量性能指标信息,包括内存,CPU,Java堆,线程,Java类,JVM垃圾回收,HTTP会话.
5.1 关闭metrics端点.
endpoints.metrics.enabled=false
5.2 关闭所有端点,仅开启metrics端点.
endpoints.enabled=false
endpoints.metrics.enabled=true
5.3 修改metrics端点的名称.
endpoints.metrics.id=testmetrics
5.4:修改metrics端点的请求路径.
endpoints.metrics.path=/endpoints/metrics
6. SpringBoot的Actuator插件提供了如下端点信息.
autoconfig 获取自动配置的信息.
beans 获取Spring Bean基本信息.
configprops : 获取配置项信息.
dump: 获取当前线程基本信息.
env: 获取当前的环境变量信息.
health: 获取检查检查信息.
info: 获取应用基本信息.
由于没有配置应用的基本信息,所以是空的.配置的方式如下.
方式一:(不推荐使用)
application.propertie或者是application.yml中手动静态配置(弊端是静态的.)
info.app.name=myvideo
info.app.description=Video project for Spring Boot
info.app.version=0.0.1-SNAPSHOT
浏览器访问:
方式二 读取Maven的pom.xml文件.既然在pom.xml中已经配置了应用的名称,描述,版本信息.读取显示就可以了嘛.(推荐使用)
info.app.name=${project.name}
info.app.description=${project.description}
info.app.version=${project.version}
浏览器访问:
Maven的资源过滤特性默认是${},由于SpringBoot扩展了properties文件的功能,可通过${}分隔符引用已定义的配置项,SpringBoot和Maven资源过滤特性使用到了相同的占位符,出现了冲突嘛,SpringBoot将${}修改为@@格式,同时也禁用了默认的Mayen资源过滤占位符.所以使用@@来获取Maven的配置项.
[email protected]@
[email protected]@
[email protected]@
如何访问的效果是 name: "@project.name@"说明你修改过了Maven的pom.xml文件,手动Reimport即可读取最新的pom.xml
浏览器访问如下:
mappings:获取请求映射基本信息.
trace: 获取请求调用信息.
7. 查看SpringBoot给我们提供了哪些端点?
使用HATEOAS插件.它可以汇总端点信息,包括各个端点的名称与链接.
使用HATEOAS插件,Maven添加依赖.
org.springframework.boot
spring-boot-starter-hateoas
这个时候我们就拥有了actuator端点了.
禁用actuator端点.
endpoints.actuator.enabled=false
8. 使用HAL bROWSER图形化工具,更好地查看端点信息.
org.webjars
hal-browser
这个时候浏览器访问站点.(非常漂亮的图形界面)
9. 进一步了解Actuator,开启Actuator插件.
org.springframework.boot
spring-boot-actuator-docs
如果有些端点不能访问可能是框架为了安全就不暴露这么多的端点了.
例如:Spring Boot 2.x(这里是2.1.5)的Actuator只暴露了health和info端点,其它的一堆怎么也打不开.
在:management.endpoints.web.exposure.include= 指定要暴露的端点就可以的.例如配置案例如下:
# 暴露监控端点
management:
# 设置监控端口
server:
port: 8863
endpoints:
# 设置端点是否可用 默认只有shutdown可用
enabled-by-default: true
web:
exposure:
# 暴露所有端点
include: "*"
# 排除beans端点
exclude: beans
# 监控单个端点
endpoint:
health:
show-details: always
在使用SpringCloud微服务框架的时候,要查看断路器Hystrix的状态:(如果不配置监控单个端点就只是看到系统的状态)同时访问url要配置一下actuator前缀。
至此SpringBoot1.5.X和SpringBoot2.x的Actuator监控简单介绍至此了。