使用SpringBoot+Prometheus+Grafana实现可视化监控
1.概述
本文是博主JAVA监控技术系列的第四篇,前面已经聊过了JMX、Spring actuator等技术,本文我们就将依托于Spring actuator+监控组件prometheus+数据可视化组件grafana来实现对Spring Boot应用的可视化监控。
2.spring actuator
Spring actuator是spring体系中自带的监控组件,用来监测应用本身以及所处环境等内容。前文已经详细介绍过了,自处就不再重复和展开了。
依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version></version> </dependency>
配置:
management: endpoints: web: exposure: include: "*"
看一下效果:
以上这些指标都是actuator自带的,要适配Prometheus的数据采集格式的话需要引入promethus的适配层。ok,接下来我们讲一下Prometheus。
3.Prometheus
3.1.介绍
先看看整个prometheus的架构:
看起来很复杂对吧?其实并不复杂,最核心的就是Prometheus Server,其内置一个时序数据库,用来存采集上来的监控指标。然后就是Prometheus提供了很多client端,放在应用侧采集监控指标然后pull metrics(推送采集到的监控指标)个Prometheus Server。然后就是支持对接多种图形化界面如grafana来进行图形化的展示。最后就是支持各种方式的告警,如发送email等。
3.2.使用
1.client端的配置
即应用内的配置。
依赖:
<!--prometheus --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <scope>runtime</scope> </dependency>
配置:
management: endpoints: web: exposure: include: "*" endpoint: prometheus: enabled: true health: show-details: always
可以看到promethus的监控指标已经出来了:
在主启动类里面,将应用的名字告诉Prometheus:
@SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class); } @Bean MeterRegistryCustomizer<MeterRegistry> configure(@Value("${spring.application.name}") String applicationName){ return register -> { register.config().commonTags("application", applicationName); }; } }
配置一下应用名:
spring: application: name: myApplicationDemo
2.server端的配置
先下载Prometheus,然后解压:
配置Prometheus的prometheus.yml配置文件:
上面标红的要和应用对齐,否则会出现:
./prometheus启动Prometheus:
可以看到:
4.grafana
Grafana 是一个流行的开源数据可视化和监控工具,它提供了丰富的图表和仪表盘功能,用于展示和分析时间序列数据以及其他类型的数据。
官网下载地址:
Download Grafana | Grafana Labs
Linux的下载方式,官网上写的很清楚:
下载后解压即可使用。
./grafana-server启动应用,默认访问地址是IP:3000,默认账号密码都是admin。首次登录会要求修改密码。
登陆后,新建一个promethus的连接,配置好自己的promethus的地址和端口号保存即可:
在配置数据源的同时,可以选择grafana为我们准备的几套Prometheus的监控面板来使用:
我们选择其中一个,可以看到我们自己的应用了:
5.最后
以上就是使用SpringBoot+Prometheus+Grafana实现可视化监控的详细内容,更多关于SpringBoot可视化监控的资料请关注脚本之家其它相关文章!
相关文章
Springboot 通过FastJson实现bean对象和Json字符串互转问题
这篇文章主要介绍了Springboot 通过FastJson实现bean对象和Json字符串互转,本文尝试验证两种场景给大家详细介绍,对Springboot FastJson实现bean和Json互转问题,感兴趣的朋友一起看看吧2022-08-08SpringBoot整合mysql、postgres及sqlserver实现多数据源配置实战案例
在工作中业务的发展或业务数据隔离的场景下,通常需要一个项目中引入多个数据源,但SpringBoot默认的自动化配置是单数据源的,这篇文章主要给大家介绍了关于SpringBoot整合mysql、postgres及sqlserver实现多数据源配置的相关资料,需要的朋友可以参考下2023-12-12详解关于IntelliJ IDEA中Schedule for Addition 的问题
本篇文章主要介绍了详解关于 IntelliJ IDEA 中 Schedule for Addition 的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-12-12解读Spring接口方法加@Transactional失效的原因
这篇文章主要介绍了Spring接口方法加@Transactional失效的原因解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03Java中List.of()和Arrays.asList()的区别及原因分析
这篇文章主要介绍了Java中List.of()和Arrays.asList()的区别及原因分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09
最新评论