对应用进行观测,监控,预警
健康状况[组件状态,存活状态] health 健康端点:返回存活,死亡. Health对象
运行指标[CPU,内存,垃圾回收,吞吐量,响应成功率] Metrics 指标监控端点:访问次数/率等等
链路追踪等等
引入web和actuator依赖 在不做任何配置情况下
<!--可观测场景启动器 线上指标监控,运行状态监控--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
访问:IP:端口/actuator
暴露指标
#暴露所有监控断点信息 management.endpoints.enable-by-default=true #以web方式暴露 management.endpoints.web.exposure.include=* #总是显示详细信息.显示每隔模块的状态信息 management.endpoints.web.show-details=always management.endpoints.health.enabled=true
再次访问
定制端点
健康监控:返回存活,死亡. Health对象
指标监控:牵扯到一些数学计算,CPU,内存,垃圾回收,吞吐量,响应成功率等
健康监控定制端点
#暴露所有监控断点信息 management.endpoints.enable-by-default=true #以web方式暴露 management.endpoints.web.exposure.include=* #总是显示详细信息.显示每隔模块的状态信息 management.endpoint.health.show-details=always management.endpoint.health.enabled=true
例如下面这个组件是我们需要监控的bean
指标监控定制端点
例如组件某个方法被调用了多少次
http://localhost:8081/actuator/metrics
http://localhost:8081/actuator/metrics/hello.count
整合Prometheus+Grafana
以上都是以JSON格式展示,或者让前端写界面
现成的方案就是
Prometheus是一个时序数据库,里面有个设置 可以定时抓取我们的SpringBoot应用的数据
导入依赖
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
目的是将数据转成Prometheus需要的数据
点进去就是Prometheus需要的格式数据
也就是说 访问 http://localhost:8081/actuator/prometheus这个地址就可以拉取数据