-
是SpringBoot提供的对应用系统监控的集成功能,可以对系统进行配置查看,相关功能统计等,在Spring Cloud中,主要完成微服务的监控,可以查看微服务之间的数据处理和调用,当出现异常时,可以快速定位问题所在
-
其功能和Dubbo的监控中心类似,区别就是一个需要专门部署,而这个是存在每一个Boot工程中的
<!--SpringBoot的 Actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
application.properties
server:
port: 8082
management:
server:
port: 9999
endpoints:
web:
base-path: /test
然后我们启动项目,准备访问 :http://localhost:9999/test/health
自定义info
默认开启的是 health和 info 两个节点,下面我们在配置文件中自定义info数据,通过监控终端进行查看
spplication.yml中定义以下数据进行测试
info:
#自定义数据,随便取值
username: laodaye
urlhttps: //www.baidu.com
#获取pom.xml文件中读取相应值,固定格式
project:
groupId: @project.groupId@
artifactId: @project.artifactId@
version: @project.version@
name: @project.name@
然后我们进行访问测试:http://localhost:9999/test/info
其他监控端点的开放与关闭
之前我们就说到监控系统默认开启的是health和info两个端点,我们可以手动开启其他端点
修改配置文件application如下
management:
server:
port: 9999
endpoints:
web:
base-path: /test
exposure:
#开放所有的监控终端,在yml中*为关键字,需要我们手动双引号引起来
include: "*"
开放了所有端点后,我们就必须得知道有哪些端点,每个端点监控的内容又是什么?
路径 | 描述 | 鉴权 | |
---|---|---|---|
GET | /autoconfig | 查看自动配置的使用情况 | true |
GET | /configprops | 查看配置属性,包括默认配置 | true |
GET | /beans | 查看bean及其关系列表 | true |
GET | /dump | 获取线程活动的快照,打印线程栈 | true |
GET | /env | 查看所有环境变量 | true |
GET | /env/{name} | 查看具体变量值 | true |
GET | /health | 查看应用健康指标 | false |
GET | /info | 获取自定义信息,这些信息由info打头 | false |
GET | /mappings | 查看所有url映射 | true |
GET | /metrics | 查看应用基本指标 | true |
GET | /metrics/{name} | 查看指定名称的应用的程序度量值 | true |
POST | /shutdown | 关闭应用,{要求endpoints.shutdown.enable设置为true} | true |
GET | /trace | 提供基本的http请求跟踪信息{时间戳,http头...} | true |
mappings端点:可以查看到当前项目中所有URL和处理器的映射关系,详细到处理器方法和对应的映射规则我们就访问几个比较有用的端点进行测试一下:作用与上面对应
我的处理器写的夜比较简单,参考参考
还有一些其他的端点比如 :beans、env...可按照上面对应进行测试
玩到这里,我们开启了全部的终端,如果我们想关闭某个指定的终端如何操作呢?
management:
server:
port: 9999
endpoints:
web:
base-path: /test
exposure:
#开放所有的监控终端,在yml中*为关键字,需要我们手动双引号引起来
include: "*"
#单独关闭某一个监控终端
exclude: env
当我们再次访问的时候就是 404 了,当然其他开放的终端还是可访问的