天天看点

Spring Boot 2.0 Actuator及监控的相关资料2)打开其他ID的http访问权限Spring Boot 应用可视化监控Spring Boot Actuator监控端点小结SpringBoot 项目健康检查与监控

简单使用

1)直接在pom里增加对actuator 的依赖即可,然后重启服务,控制台会打印如下图内容

Spring Boot 2.0 Actuator及监控的相关资料2)打开其他ID的http访问权限Spring Boot 应用可视化监控Spring Boot Actuator监控端点小结SpringBoot 项目健康检查与监控

注意:在1.0版本里,默认地址是【/ID】,在2.0里面,默认是【/actuator/ID】

spring boot1.0 spring boot 2.0
默认路径 /ID /actuator/ID
默认启用ID 除了shutdown health 和 info

2)打开其他ID的http访问权限

  1. management:  
  2.   endpoints:  
  3.     web:  
  4.       expose: "*" 

注意:这里涉及要yaml的语法,由于『*』在yaml里是一个特殊字符,因此需要用引号引起来

Spring Boot 应用可视化监控

主要采用actuator做监控,prometheus采集指标数据,Grafana可视化监控数据,后面2个东西都可以从docker上获取,

Spring Boot Actuator监控端点小结

actuator 的监控,主要分为三类:应用配置类、度量指标类和操作控制类(主要是shutdown),但这些指标是1.0版本的,在2.0版本有一些细微变化,但可以参考

具体指标含义及返回值,可参考官网API

Spring Boot Actuator的官方地址

自定义Actuator   

SpringBoot 项目健康检查与监控

虽然Actuator提供了很多运行中Spring Boot应用程序的内部工作细节,但难免和你的需求有所偏差。也许你并不需要它提供的所有功能,想要关闭一些也说不定。或者,你需要对Actuator 稍作扩展,增加一些自定义的度量信息,以满足你对应用程序的需求。

1. 修改接口 ID

每个Actuator 接口都有一个ID用来决定接口的路径,比方说,/beans接口的默认ID就是beans。比如要修改 /beans 为 /instances,则设置如下:

management.endpoints.beans.id = instances

           
2. 启用和禁用接口

虽然Actuator的接口都很有用,但你不一定需要全部这些接口。默认情况下,所有接口(除 了/shutdown)都启用。比如要禁用 /metrics 接口,则可以设置如下:

management.endpoints.metrics.enabled = false

           

如果你只想打开一两个接口,那就先禁用全部接口,然后启用那几个你要的,这样更方便。

management.endpoints.enabled-by-default = false
management.endpoints.metrics.enabled = true

           

3. 添加自定义度量信息

Actuator 自动配置有两个实例 CounterService 和 GaugeService 可以用来计数使用,我们所要做的就是把它们的实例注入所需的 bean 然后调用相应的方法。除此之外,我们还可以实现 PublicMetrics 接口,提供自己需要的度量信息。

4. 创建自定义跟踪仓库

默认情况下,/trace 接口报告的跟踪信息都存储在内存仓库里,100个条目封顶。一旦仓库满了,就开始移除老的条目,给新的条目腾出空间。在开发阶段这没什么问题,但在生产环境中,大流量会造成跟踪信息还没来得及看就被丢弃。我们可以将那些跟踪条目存储在其他地方——既不消耗内存,又能长久保存的地方。只需实现Spring Boot的TraceRepository接口即可。

5. 插入自定义的健康指示器

实现 HealthIndicator 接口则可以实现自定义的健康指示器。

6. 保护 Actuator 接口

很多Actuator端点发布的信息都可能涉及敏感数据,还有一些端点,(比如/shutdown)非常危险,可以用来关闭应用程序。因此,保护这些端点尤为重要,能访问它们的只能是那些经过授权的客户端。

继续阅读