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

posted @ 2020-03-11 14:07  jason47  阅读(384)  评论(0)    收藏  举报