Spring Boot Admin 监控指标接入Grafana可视化的实例详解

 更新时间:2022年11月30日 11:45:15   作者:阿提说说  
Spring Boot Admin2 自带有部分监控图表,如图,有线程、内存Heap和内存Non Heap,这篇文章主要介绍了Spring Boot Admin 监控指标接入Grafana可视化,需要的朋友可以参考下

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

在前面我们知道SBA2具备的监控指标还是挺多的,访问/actuator 即可知道,如下图

现在在这篇文章,我们要做的就是将这些指标进行持久化,并在Grafana展示更多的图标,让我们开始。

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

引入Maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<!--桥接prometheus-->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

application.properties 配置

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

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

生产环境,需要配置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

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

配置prometheus.yml

scrape_configs:
  # The job name is added as a label `job=<job_name>` 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']    

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端点实际暴露是有很多端点的,后面将介绍如何自定义大屏接入上述指标。

到此这篇关于Spring Boot Admin 监控指标接入Grafana可视化的文章就介绍到这了,更多相关Spring Boot Admin监控内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Kotlin中 StateFlow 或 SharedFlow 的区别解析

    Kotlin中 StateFlow 或 SharedFlow 的区别解析

    Kotlin协程中的StateFlow和SharedFlow是响应式数据流,分别用于UI状态管理和事件通知,StateFlow有初始值,只保留最新值,适用于UI状态管理;SharedFlow没有初始值,可以配置缓存大小,适用于事件通知,感兴趣的朋友一起看看吧
    2025-03-03
  • Springboot整合spring-boot-starter-data-elasticsearch的过程

    Springboot整合spring-boot-starter-data-elasticsearch的过程

    本文详细介绍了Springboot整合spring-boot-starter-data-elasticsearch的过程,包括版本要求、依赖添加、实体类添加、索引的名称、分片、副本设置等,同时,还介绍了如何使用ElasticsearchRepository类进行增删改查操作
    2024-10-10
  • SpringBoot中使用@Async实现异步任务调用详解

    SpringBoot中使用@Async实现异步任务调用详解

    这篇文章主要介绍了SpringBoot中使用@Async实现异步任务调用详解,一个可以无需等待被调用函数的返回值就让操作继续进行的方法(来自百度百科),即程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序,需要的朋友可以参考下
    2023-12-12
  • 记一次springboot配置redis项目启动时的一个奇怪的错误

    记一次springboot配置redis项目启动时的一个奇怪的错误

    这篇文章主要介绍了spring boot配置redis项目启动时的一个奇怪的错误,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • feign的ribbon超时配置和hystrix的超时配置说明

    feign的ribbon超时配置和hystrix的超时配置说明

    这篇文章主要介绍了feign的ribbon超时配置和hystrix的超时配置说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • JPA中JpaRepository接口的使用方式

    JPA中JpaRepository接口的使用方式

    这篇文章主要介绍了JPA中JpaRepository接口的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • SpringBoot项目中Controller接收两个实体的实现方法

    SpringBoot项目中Controller接收两个实体的实现方法

    本文主要介绍了SpringBoot项目中Controller接收两个实体的实现方法,主要介绍了两种方法,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • Java截取字符串的方法

    Java截取字符串的方法

    这篇文章主要介绍了Java截取字符串的方法,实例分析了java中substring方法的使用技巧,需要的朋友可以参考下
    2015-05-05
  • springboot 集成redis哨兵主从的实现

    springboot 集成redis哨兵主从的实现

    本文主要介绍了springboot 集成redis哨兵主从的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 详解IDEA中Debug的使用和进制转换问题

    详解IDEA中Debug的使用和进制转换问题

    这篇文章主要介绍了IDEA中Debug的使用和进制转换,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11

最新评论