Springboot整合Prometheus+grafana实现系统监控

前言

Prometheus是一个开源的服务监控系统和时序数据库,它提供了强大的功能和灵活的架构,是目前主流的监控和管理应用系统的工具。

而Grafana是一个开源的数据可视化工具,与Prometheus集成,就可以可视化地监控系统的各个指标。

原理

首先Springboot整合actuator将服务的各种参数暴露出来,Prometheus定期通过接口查询这些参数,然后将参数存储在Prometheus内置的数据库内,然后再

一、Springboot整合actuator暴露数据

引入依赖

java 复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

配置yml暴露数据

java 复制代码
spring:
  application:
    name: my-app
server:
  port: 8081
  servlet:
    context-path: /myApp
management:
  endpoints:
    web:
      exposure:
        include: "*"   #放行数据
  endpoint:
    prometheus:
      enabled: true  #开启普罗米修斯,对上面放行的数据进行格式转换
    health:
      show-details: always #展示服务监控更多细节
  metrics:
    export:
      prometheus:
        enabled: true #上面的指标允许被导出

配置文件配置prometheus服务名

创建一个配置文件,注入bean

java 复制代码
import io.micrometer.core.instrument.MeterRegistry;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RedissonConfig {
    @Bean
    MeterRegistryCustomizer<MeterRegistry> configurePrometheus(@Value("${spring.application.name}") String name){
        return (registry -> registry.config().commonTags("application",name));
    }
}

验证结果

启动springboot项目,然后服务名+/actutor,没有定义服务名的记得把前面部分去掉。如下,代表成功放行服务数据。

再拼接/prometheus,如下,是经过prometheus转换的数据。

二、安装并配置prometheus

下载官网

选择对应的系统下载,我这里用的是window,下载之后解压。

解压后可以看到如下目录,data文件夹在第一次启动的时候会自动创建。

编辑prometheus.yml

在最后面加入如下代码,job_name可以自定义,metrics_path配置的是prometheus的相对访问路径,targets配置ip+端口

总的来说,要确保拼接之后能访问到前面暴露的数据即可。访问路径=targets+metrics_path

我的访问路径拼接后是http://127.0.0.1:8081/myApp/actuator/prometheus

java 复制代码
### 配置拉取springboot数据
  - job_name: "my_app_prometheus"
    scrape_interval: 5s
    metrics_path: '/myApp/actuator/prometheus'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["127.0.0.1:8081"]

保存之后,双击prometheus.exe启动,如果启动之后闪一下就没有反应了,肯定是配置文件的问题。可以尝试先把上面加的去掉再启动来判断是否是添加的内容的问题。如果能正常启动,则检查配置的路径targets+metrics_path的路径是否能访问到数据。

验证

启动之后,打开127.0.0.1:9090,跳转如下页面说明启动成功。

点击status/target health,可以看到如下,说明成功读取到项目的数据

三、安装并配置grafana

下载官网

选择window,点击下载,然后解压。

解压后进入bin目录下,启动grafana-server.exe然后等待启动完成。

grafana的默认端口是3000,默认账号密码都是admin,登录之后会让你设置新密码,可以设置,也可以跳过。

进入如下界面,想要展示prometheus的数据,则需要配置数据源。

选择prometheus数据源,默认第一个就是

设置prometheus服务的地址

自定义数据源名称

拉到最下方点击,点击seve&test,如果出现绿色箭头,说明连接成功

创建仪表盘

选择一个仪表盘

4701是JVM的专属仪表盘,想查看更多仪表盘样式,可以在仪表盘官网查看。

选择数据源,然后导入

最终得到如下仪表盘,点击右上角保存仪表盘,至此配置完成

仪表盘布局支持拉拽进行布局,也支持删除编辑仪表盘等。

相关推荐
2402_8575893634 分钟前
Spring Boot框架:电商系统的技术革新
java·spring boot·后端
菠菠萝宝37 分钟前
【云岚到家】-day10-2-冷热处理及统计
数据库·spring boot·spring·spring cloud·oracle·事务·xxl-job
福大大架构师每日一题1 小时前
31.3 XOR压缩和相关的prometheus源码解读
prometheus
sun_star1chen1 小时前
Springboot3.3.5 启动流程之 tomcat启动流程介绍
java·spring boot·tomcat·springboot
世间万物皆对象2 小时前
Spring Boot核心概念:依赖管理
java·spring boot·后端
不会飞的小龙人2 小时前
遥测数据采集工具Grafana Alloy
spring boot·grafana·日志采集·链路跟踪·alloy·otel
about-one2 小时前
SpringBootTest常见错误解决
spring boot·spring
枸杞配码2 小时前
SpringBoot多环境+docker集成企业微信会话存档sdk
spring boot·docker·企业微信
2401_857617624 小时前
基于Spring Boot的电子商务平台架构
spring boot·后端·架构