场景

SpringBoot中集成Actuator实现监控系统运行状态:

SpringBoot中集成Actuator实现监控系统运行状态_springboot actuator 获取系统

Prometheus

Prometheus,是一个开源的系统监控和告警的工具包,其采用Pull方式采集时间序列的度量数据(也支持push方式),

通过Http协议传输。它的工作方式是被监控的服务需要公开一个Prometheus端点,这端点是一个HTTP接口,

该接口公开了度量的列表和当前的值,然后Prometheus应用从此接口定时拉取数据,一般可以存放在时序数据库中,

然后通过可视化的Dashboard(e.g.Grafana)进行数据展示。

Grafana

grafana,是一个开源的dashboard展示工具,可以支持很多主流数据源,包括时序性的和非时序性的。

其提供的展示配置以及可扩展性能满足绝大部分时间序列数据展示需求,是一个比较优秀的工具。

注:

博客

实现

1、新建SpringBoot项目并添加依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- prometheus support -->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

SpringBoot+Prometheus+Grafana实现系统可视化监控_grafana

2、修改yml文件,添加如下配置

management:
  metrics:
    export:
      prometheus:
        enabled: true
        step: 1m
        descriptions: true
  web:
    server:
      auto-time-requests: true
  endpoints:
    prometheus:
      id: springmetrics
    web:
      exposure:
        include: health,info,env,prometheus,metrics,httptrace,threaddump,heapdump,springmetrics

# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080
  port: 996
  servlet:
    # 应用的访问路径
    context-path: /
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # tomcat最大线程数,默认为200
    max-threads: 800
    # Tomcat启动初始化的线程数,默认值25
    min-spare-threads: 30

注意这里配置的端口是996

3、启动项目,访问

http://127.0.0.1:996/actuator/prometheus

即可以看到暴露的信息

 

4、Prometheus下载安装

下载地址:

Download | Prometheus

这里是在windows上,所以选择对应windows的zip包

SpringBoot+Prometheus+Grafana实现系统可视化监控_prometheus_02

 

当然还要其他下载安装的方式,比如docker等方式。

如果官网迟迟下载不下来,可从网络上搜索对应windows的包下载并解压。

解压之后找到prometheus.yml修改配置文件中metrics_path为对应的路径以及targets为对应的ip和端口。

SpringBoot+Prometheus+Grafana实现系统可视化监控_数据_03

 

更多配置说明参考官方文档

https://github.com/prometheus/prometheus/blob/main/documentation/examples/prometheus.yml

修改完配置文件之后,双击prometheus.exe启动,然后等待启动成功并访问默认的9090端口

http://localhost:9090

SpringBoot+Prometheus+Grafana实现系统可视化监控_spring boot_04

在Expression中输入

jvm_memory_used_bytes

然后查看监控效果

SpringBoot+Prometheus+Grafana实现系统可视化监控_数据_05

 

5、Grafana下载安装

下载地址:

Index of grafana-local

SpringBoot+Prometheus+Grafana实现系统可视化监控_grafana_06

 

下载之后并解压,找到bin下grafana-server.exe双击启动

SpringBoot+Prometheus+Grafana实现系统可视化监控_grafana_07

 

启动成功后访问

http://127.0.0.1:3000/login

SpringBoot+Prometheus+Grafana实现系统可视化监控_spring boot_08

 

默认账户admin,密码也是admin

6、登录并提示修改密码之后,点击DATA SOURCES

SpringBoot+Prometheus+Grafana实现系统可视化监控_spring_09

然后添加数据源的类型为Prometheus

SpringBoot+Prometheus+Grafana实现系统可视化监控_spring boot_10

 

输入上面启动的对应的地址

SpringBoot+Prometheus+Grafana实现系统可视化监控_spring boot_11

 

7、点击右上角新建New dashboard

SpringBoot+Prometheus+Grafana实现系统可视化监控_spring_12

 

然后点击Add visualization

SpringBoot+Prometheus+Grafana实现系统可视化监控_数据_13

 

然后选择刚添加的数据源

SpringBoot+Prometheus+Grafana实现系统可视化监控_数据_14

 

然后下方选择一个参数比如jvm_buffer_count_buffers,其它参数根据自己需要设置,保存即可查看。

SpringBoot+Prometheus+Grafana实现系统可视化监控_数据_15