• Spring Boot Admin 监控指标接入Grafana可视化


    其他相关文章:

    1. Spring Boot Admin 参考指南
    2. SpringBoot Admin服务离线、不显示健康信息的问题
    3. Spring Boot Admin2 @EnableAdminServer的加载
    4. Spring Boot Admin2 AdminServerAutoConfiguration详解
    5. Spring Boot Admin2 实例状态监控详解
    6. Spring Boot Admin2 自定义JVM监控通知
    7. Spring Boot Admin2 自定义异常监控

    Grafana相关文章,请关注:《Grafana实战》专栏

    Spring Boot Admin2 自带有部分监控图表,如图,有线程、内存Heap和内存Non Heap,但也就只有这几个监控图表,数量很少,并且它只能看到当时的监控数据,并不能查看历史数据,为了改变这种情况,我们需要将指标进行持久化,并使用更强大的可视化工具,这个工具就是Grafana。

    在这里插入图片描述
    在前面我们知道SBA2具备的监控指标还是挺多的,访问/actuator 即可知道,如下图
    在这里插入图片描述
    现在在这篇文章,我们要做的就是将这些指标进行持久化,并在Grafana展示更多的图标,让我们开始。

    首先我们需要再Spring Boot中集成持久化数据库,我这里使用了Prometheus,也可以使用InfluxDB。

    引入Maven依赖

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-actuatorartifactId>
    dependency>
    
    
    <dependency>
        <groupId>io.micrometergroupId>
        <artifactId>micrometer-registry-prometheusartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    application.properties 配置

    由于之前我们已经接入过SBA2,所以我们已经配置过需要暴露的端点,无需再次配置。

    management.endpoints.web.exposure.include=*
    management.endpoint.health.show-details=always
    
    • 1
    • 2

    生产环境,需要配置Spring Security,我这里并未配置。

    接入Prometheus

    安装prometheus,为了能够快速体验,这边使用Docker安装,并将本地配置文件映射到Docker中

    docker run -p 9090:9090 -v D:\sdk\prometheus\prometheus.yml:/etc/prometheus/prometheus.yml -v D:\sdk\prometheus\alert_rules.yml:/etc/prometheus/alert_rules.yml   prom/prometheus
    
    • 1

    alert_rules.yml 是 Prometheus 告警规则的配置,这个后面其他文章再讲

    配置prometheus.yml

    scrape_configs:
      # The job name is added as a label `job=` to any timeseries scraped from this config.
      - job_name: 'prometheus'
    
        # Override the global default and scrape targets from this job every 5 seconds.
        scrape_interval: 5s
    
        static_configs:
          - targets: ['localhost:9090']
    
      #- job_name: 'prometheus-demo'
      #  scrape_interval: 5s
      #  static_configs:
      #    - targets: ['192.168.0.115:8088']
      - job_name: 'provider'
        metrics_path: '/actuator/prometheus'
        scrape_interval: 5s
        static_configs:
          - targets: ['192.168.0.115:8000']    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    metrics_path:指标地址,原有的Spring Boot 指标将自动转换为prometheus指标
    scrape_interval:指标拉取间隔,这里配置5s
    192.168.0.115:8000: 为本地服务的地址+端口

    配置完毕,重启Prometheus,访问地址,可见两个服务都已经是UP状态

    在这里插入图片描述
    访问http://192.168.0.115:8000/actuator/prometheus地址,就是我们刚配置的服务指标

    在这里插入图片描述

    接入Grafana

    同样的,为了快速体验,我们使用Docker来安装Grafana

    docker run -p 3000:3000 grafana/grafana

    安装完毕,访问http://localhost:3000 进入主界面,默认账号密码:admin/admin

    接入第一步,配置数据源
    在这里插入图片描述

    在这里插入图片描述

    选择Prometheus,URL选择Prometheus端口地址,我这边已经将端口暴露出来,其他默认

    在这里插入图片描述

    设置完毕,下一步创建一个大屏,这里以创建JVM监控大屏为例。
    由于Grafana会提供一些大屏指标模板,我们只需要导入即可,或者进行适当的修改,https://grafana.com/grafana/dashboards

    在这里插入图片描述
    搜索结果第一个即为我们需要的模板,进入详情页,copy模板ID,到Grafana进行导入
    在这里插入图片描述

    选择刚配置的Prometheus数据源,设置名称和文件夹,导入后即可生成JVM大屏
    在这里插入图片描述
    最终的JVM大屏效果如图,这里截图头部部分指标
    在这里插入图片描述

    包含的所有指标

    在这里插入图片描述

    每个指标的具体含义,可以自行去了解,本篇文章我们以JVM为例,将Spring Boot2 的JVM 指标接入到Grafana进行可视化,在前面我们通过actuator端点实际暴露是有很多端点的,后面将介绍如何自定义大屏接入上述指标。

  • 相关阅读:
    基于LSTM算法中文歌词生成
    【jmeter】
    SpringMVC实现增删改查
    Jetson Agx Xavier平台调试AR0820相机分辨率缩放3848x2168 to 1920x1080
    [持续更新...] 牛客Python专项题
    SpringBoot 源码 | refreshContext 方法解析
    >>开发工具:IntelliJ IDEA 2022.2 出来啦
    HTML+CSS-项目:学成在线
    IDEA代码同步到GitHub
    华为政企协作平板产品集
  • 原文地址:https://blog.csdn.net/weixin_40972073/article/details/128089324