使用Prometheus+Grafana的方法监控Springboot应用教程详解

作者:南瓜慢说 时间:2023-10-31 13:08:12 

1 简介

项目越做越发觉得,任何一个系统上线,运维监控都太重要了。关于Springboot微服务的监控,之前写过【Springboot】用Springboot Admin监控你的微服务应用,这个方案可以实时监控并提供告警提醒功能,但不能记录历史数据,无法查看过去1小时或过去1天等运维情况。本文介绍Prometheus + Grafana的方法监控Springboot 2.X,实现美观漂亮的数据可视化。

2 Prometheus

Prometheus是一套优秀的开源的监控、报警和时间序列数据库组合系统,在现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。

2.1 引入到Springboot

Prometheus引入依赖如下:


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

对于Springboot,要开启Actuator,并打开对应的Endpoint


management.endpoints.web.exposure.include=*
# 或者
management.endpoints.web.exposure.include=prometheus

启动Springboot后,可以通过下面URL看能不能正确获取到监控数据:

localhost:8080/actuator/prometheus

获取数据成功,说明Springboot能正常提供监控数据。

2.2 Docker方式使用

为了方便,使用Docker启动Prometheus


# 拉取docker镜像
docker pull prom/prometheus

准备配置文件prometheus.yml


scrape_configs:
# 可随意指定
- job_name: 'spring'
# 多久采集一次数据
scrape_interval: 15s
# 采集时的超时时间
scrape_timeout: 10s
# 采集的路径
metrics_path: '/actuator/prometheus'
# 采集服务的地址,设置成Springboot应用所在服务器的具体地址
static_configs:
- targets: ['hostname:9000','hostname:8080']

启动docker实例:

# 端口为9090,指定配置文件
docker run -d -p 9090:9090 -v ~/temp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

2.3 测试与查看

成功启动后,就可以打开网页查看了,并且能图形化展示,URL为http://localhost:9090/。

使用Prometheus+Grafana的方法监控Springboot应用教程详解

如上图所示,打开网页后,随便选取一个对应的监控指标与参数,点击Execute就可以查看了。

3 Grafana

Grafana是一个开源的度量分析与可视化套件,纯JavaScript开发的前端工具,通过访问库(如InfluxDB),展示自定义报表、显示图表等。它的UI十分灵活,有丰富的插件和模板,功能强大。一般用在时序数据的监控方面。

3.1 Docker安装与启动


# 拉取镜像
docker pull grafana/grafana
# 运行实例
docker run -d -p 3000:3000 grafana/grafana

启动成功后,访问http://localhost:3000 检查是否成功,初始管理员账号密码为admin/admin

3.2 配置数据源

Grafana展示数据,则需要配置对应的数据源,本文中配置之前安装启用的Prometheus数据源,具体配置如下图所示:

使用Prometheus+Grafana的方法监控Springboot应用教程详解

需要注意的是Access要选Browser模式,否则无法正常获取数据。配置完成后,点击Save & Test即可。

3.3 模板套用

能够获取数据后,就可以自定义数据可视化展示了。但如果自己一条指标一条指标的加,就会很麻烦。实际上,Grafana提供了许多优秀的模板,可以网页https://grafana.com/grafana/dashboards 查找。

本文使用Spring Boot 2.1 Statistics模板,导入方法如下:

点击+号 --> Import --> 输入模板链接或ID --> 点击Load。

使用Prometheus+Grafana的方法监控Springboot应用教程详解

成功导入后,就能监控数据了,而且,界面真的很好看:

使用Prometheus+Grafana的方法监控Springboot应用教程详解

4 总结

本文介绍了如何使用Prometheus + Grafana监控Springboot应用,实际上,Prometheus + Grafana十分强大,值得花时间好好研究。

本文例子中软件版本信息如下:


springboot.version=2.2.5
micrometer-registry-prometheus=1.3.5
prometheus.version=2.16
grafana.version=6.7.0-beta1

来源:https://www.cnblogs.com/larrydpk/p/12563497.html

标签:Prometheus,Grafana,监控,Springboot
0
投稿

猜你喜欢

  • 为什么阿里巴巴要求日期格式化时必须有使用y表示年

    2023-11-02 20:08:58
  • c#获取两个特定字符之间的内容并输出的方法

    2021-12-02 19:47:11
  • Android 遍历SDCARD的文件夹并显示目录信息

    2021-06-01 21:49:04
  • 再谈异常处理try catch finally

    2021-11-12 11:17:31
  • Android 校验email是否合法实现代码

    2021-06-02 05:18:24
  • 探讨:android项目开发 统筹兼顾 需要考虑的因素

    2023-08-05 11:21:32
  • spring @Conditional的使用与扩展源码分析

    2022-01-09 05:52:57
  • C++类静态成员与类静态成员函数详解

    2022-10-10 08:22:20
  • Android中利用matrix 控制图片的旋转、缩放、移动

    2023-01-12 12:35:01
  • springboot使用redis对单个对象进行自动缓存更新删除的实现

    2023-06-30 19:14:36
  • java和 javaw 及 javaws的区别解析

    2023-07-21 06:31:05
  • 在项目中直接使用hystrix的流程分析

    2021-10-22 01:55:21
  • java使用回溯法求解数独示例

    2023-08-17 14:39:10
  • Android使用手势监听器GestureDetector遇到的不响应问题

    2022-02-27 23:52:40
  • SpringBoot从yml配置文件中读常用参数值实例方法

    2021-07-01 11:12:04
  • java 请求跨域问题解决方法实例详解

    2023-08-24 02:55:11
  • response对象的使用(实例讲解)

    2023-11-30 12:23:22
  • Devexpress treelist 简介

    2023-02-13 23:07:56
  • C#多线程系列之线程的创建和生命周期

    2023-08-31 17:10:16
  • Android编程实现ActionBar的home图标动画切换效果

    2021-11-21 11:34:11
  • asp之家 软件编程 m.aspxhome.com