Metrics \ Spring Boot Actuator \ Spring Boot Admin
一、Metrics
在应用程序中,通常会记录日志以便事后分析,在很多情况下是产生了问题之后,再去查看日志,是一种事后的静态分析。在很多时候,我们可能需要了解整个系统在当前,或者某一时刻运行的情况,比如一个系统后台服务,我们可能需要了解一些实时监控的数据例如
1、每秒钟的请求数是多少(TPS)?
2、平均每个请求处理的时间?
3、请求处理的最长耗时?
4.请求处理的响应的直方图?
5、请求处理正确响应率?
6、等待处理的请求队列长度?
7、查看整个系统的的CPU使用率、内存占用、jvm运行情况;以及系统运行出错率等等一系列的实时数据采集时,最简单的方法就是在系统的入口、出口和关键位置设置埋点,然后将采集到的信息发送到实时监控平台或者存入到缓存和DB中做进一步的分析和展示。
二、Spring Boot Actuator + Prometheus + 图表解决方案Grafana
SpringBoot2在spring-boot-actuator中引入了micrometer,对1.x的metrics进行了重构。
另外支持对接的监控系统也更加丰富(Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Prometheus、SignalFx、StatsD、Wavefront)
POM
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
配置文件:
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
1. 通过http://localhost:80/actuator查看endpoints,如info, env, health, metrics
通过http://localhost:80/actuator/metrics查看actuator的metrics指标
然后通过http://localhost:9000/actuator/metrics/jvm.gc.pause查看具体的指标
2. 通过prometheus
endpoint(http://localhost:80/actuator/prometheus)看到被暴露的metrics数据
三、Spring Boot Admin
基于Spring Boot Actuator + Vue.js
C/S模式 或者 Spring Cloud