当前位置: 首页 > article >正文

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

前言

Prometheus是一个开源的服务监控系统和时序数据库,它提供了强大的功能和灵活的架构,是目前主流的监控和管理应用系统的工具。
而Grafana是一个开源的数据可视化工具,与Prometheus集成,就可以可视化地监控系统的各个指标。

原理

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

一、Springboot整合actuator暴露数据

引入依赖

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

配置yml暴露数据

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

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

### 配置拉取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的专属仪表盘,想查看更多仪表盘样式,可以在仪表盘官网查看。
在这里插入图片描述

选择数据源,然后导入

在这里插入图片描述

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

在这里插入图片描述
仪表盘布局支持拉拽进行布局,也支持删除编辑仪表盘等。


http://www.kler.cn/a/397596.html

相关文章:

  • 《应用数学学报》
  • GPIO相关的寄存器(重要)
  • c# Encoding.GetEncoding
  • 【机器学习导引】ch6-支持向量机
  • 大学语文教材电子版(第十一版)教学用书PDF及课件
  • C++:基于红黑树封装map和set
  • linux进程、文件常见命令
  • 网络层7——外部网关协议BGP
  • 数据结构《链表》
  • 基于Java Web 的家乡特色菜推荐系统
  • Redis性能优化——针对实习面试
  • 宝盒云影 3.3.3 | 高清秒播频道丰富,直播源每日更新
  • 大三学生实习面试经历(1)
  • Windows文件夹操作快捷键
  • 深入理解与实践 AWS IAM Roles Anywhere:提升混合云环境的安全性
  • Python爬虫知识体系-----正则表达式-----持续更新
  • leetcode hot100【LeetCode 5.最长回文子串】java实现
  • unity3d————异步加载练习题
  • [A-18]ARMv8/ARMv9-Memory-内存空间的属性(Attributes Properties)
  • OpenCV、YOLO、VOC、COCO之间的关系和区别
  • 前端pdf预览方案
  • Android LiveData 处理数据倒灌的几种措施
  • 计算机视觉 ---图像读取与显示(OpenCV与Matplotlib)
  • ‌EAC(Estimate at Completion)和ETC(Estimate to Complete)
  • c# Encoding.GetEncoding
  • 后端返回大数问题