SpringBootWeb服务的指标监控-Prometheus与Grafana实现

使用prometheus收集springboot webapp的指标, 由grafana进行图形化展示.

Prometheus 是一个开源的监控和警报工具,旨在提供可靠的实时监控,具有高度可扩展性和灵活性。它采用了基于拉取的模型,通过在目标上暴露自身的 HTTP API,由 Prometheus 服务器定期拉取指标数据。
简单来说, Prometheus 主要监控系统性能。

Grafana是一个流行的开源数据可视化工具,专注于实时监控和仪表盘展示。它支持多种数据源,如Prometheus、Graphite、InfluxDB等,可以将各种数据源的指标进行可视化展示,帮助用户实时了解系统运行状态。
简单来说, Grafana 主要实现系统监控可视化。

环境

windows WSL + ubuntu 22.04
java 17
Prometheus 3.7.1
Grafana 12.2.1

被监控的webserver

webserver上需要集成prometheus的探针, 示例见:
一个简单的基于springboot的webserver

application.properties配置

spring.application.name=spring-webserver-prometheus

# 管理端点的根路径,默认就是/actuator
# management.endpoints.web.base-path=/actuator
# 管理端点的端口.默认和server.port相同
management.server.port=10002
# http指标监控. http://localhost:6090/actuator/metrics/http.server.requests
# prometheus的路径是/actuator/prometheus
management.endpoints.web.exposure.include=health,metrics,info,prometheus
  # 启用 prometheus 端口,默认就是true
management.metrics.export.prometheus.enabled=true
  # 增加每个指标的全局的tag
management.metrics.tags.application=${spring.application.name}

pom.xml

<!-- Actuator提供监控端点 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<!-- Micrometer Prometheus注册表 -->
<!-- 
注意!这里没写版本是因为默认使用spring-boot-starter-parent中定义好的版本.
如果不使用spring-boot-starter-parent,则需要自行试验兼容的版本.
不要使用最新版本就对了,永远使用稳定版本!
 -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

Prometheus

下载

tar xvfz prometheus-*.tar.gz
cd prometheus-*

配置

添加springboot应用的监控配置

scrape_configs:
  - job_name: 'spring-boot-app'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 15s
    static_configs:
      - targets: ['yourIP:10002']  
        labels:
          application: 'spring-webserver-prometheus' 

targets替换为应用ip和管理端口.注意如果是WSL,最好不要使用localhost
application替换为spring应用名称

启动

./prometheus --config.file=prometheus.yml

打开浏览器, 通过localhost:9090可访问其WebUI.
在页面http://localhost:9090/targets中应该可以看到配置的web服务.
配置的web服务

Grafana

下载OSS开源版本

安装

sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/grafana/release/12.2.1/grafana_12.2.1_18655849634_linux_amd64.deb
sudo dpkg -i grafana_12.2.1_18655849634_linux_amd64.deb

启动

sudo /bin/systemctl start grafana-server

由于我是在WSL中使用,因此手动启动

cd /usr/share/grafana/bin
sudo ./grafana server

如有需要,可以配置开机自启

 sudo /bin/systemctl daemon-reload
 sudo /bin/systemctl enable grafana-server

访问

打开浏览器, 访问http://localhost:3000
默认账号密码: admin/admin

配置

配置Grafana数据源指向Prometheus,然后可以导入Spring Boot仪表板

Prometheus配置数据源

第一步
第一步

第二步
第二步

第一步,在url中填写Prometheus配置数据源的默认URL: http://localhost:9090
第三步

滚动到页面最下面, save. 如果test通过,则开始添加dashboard.
save

配置大屏

自己配置很烦, 社区提供了很多现成的模板.可以通过id导入.
11378和21319比较好.
也可以自己去社区找

步骤一
步骤一
步骤二
步骤二
步骤三,注意选择前面配置好的数据源.
步骤三
这是大屏效果.
步骤四
大屏的位置
大屏的位置

posted @ 2025-10-22 11:20  a-cool-boy  阅读(6)  评论(0)    收藏  举报