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: 8081servlet: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 {@BeanMeterRegistryCustomizer<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: 5smetrics_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.rhkb.cn/news/470108.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运行WHTools批量启动游戏房间工具提示要安装.Net Framework3.5解决

确认电脑能正常上网 点击下载并安装此功能&#xff0c;开始安装.Net Framework 3.5 安装成功 成功启动WHTools

怎么监控员工电脑?分享5个监控员工电脑的绝佳方法(立竿见影!建议收藏!)

怎么监控员工电脑&#xff1f; 在企业管理中&#xff0c;缺乏行之有效的监控时&#xff0c;便会滋生一些不当行为便&#xff0c;如偷偷浏览与工作无关的网站、泄露公司机密信息、甚至进行非法操作等。 为了有效管理员工电脑&#xff0c;确保企业信息安全&#xff0c;学会合理合…

监控录音如何消除杂音?降低录音噪音的五个技巧

在日常生活和工作中&#xff0c;监控录音的清晰度对信息获取极为重要。然而&#xff0c;录音过程中常会遇到各种杂音干扰&#xff0c;这些干扰可能来自环境噪音、设备故障等多种因素。为了提高录音质量&#xff0c;采取有效的杂音消除技术是必不可少的。监控录音如何消除杂音&a…

红日靶机(七)笔记

VulnStack-红日靶机七 概述 在 VulnStack7 是由 5 台目标机器组成的三层网络环境&#xff0c;分别为 DMZ 区、第二层网络、第三层网络。涉及到的知识点也是有很多&#xff0c;redis未授权的利用、laravel的历史漏洞、docker逃逸、隧道、代理的搭建、通达OA系统的历史漏洞、ms…

沃飞长空郭亮博士荣获中国航空航天月桂奖

11月11日晚&#xff0c;第十六届中国航空航天月桂奖颁奖典礼在珠海成功举办。本届月桂奖共有29个为中国航空航天事业做出突出贡献的团体与个人获奖&#xff0c;其中&#xff0c;沃飞长空CEO兼首席科学家郭亮博士因其在低空经济领域的突出贡献荣膺第十六届中国航空航天月桂奖“风…

WordPress 2024主题实例镜像

目录 隐藏 1 WordPress 2024主题实例镜像启用的插件 2 WordPress 2024主题实例镜像截图 WordPress 2024主题实例镜像启用的插件 WordPress 2024主题实例镜像启用了2024主题&#xff0c;配置了&#xff1a; Akismet 反垃圾评论插件 Admin Notices Manager仪表盘通知隐藏…

Nginx中实现流量控制(限制给定时间内HTTP请求的数量)示例

场景 流量控制 流量限制 (rate-limiting)&#xff0c;可以用来限制用户在给定时间内HTTP请求的数量。 流量限制可以用作安全目的&#xff0c;比如可以减慢暴力密码破解的速率&#xff0c; 更常见的情况是该功能被用来保护上游应用服务器不被同时太多用户请求所压垮。 流量…

探索 JNI - Rust 与 Java 互调实战

真正的救赎&#xff0c;并非厮杀后的胜利&#xff0c;而是能在苦难之中&#xff0c;找到生的力量和内心的安宁。 ——加缪Albert Camus 一、Rust Java &#xff1f; Java 和 Rust 是两种现代编程语言&#xff0c;各自具有独特的优势&#xff0c;适用于不同的应用场景。 1、…

使用HTML、CSS和JavaScript创建动态圣诞树

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 ✨特色专栏&#xff1a…

3DTiles之i3dm介绍

3DTiles之i3dm介绍 3D Tiles 是一种用于高效存储和传输三维城市、建筑、地形、点云等空间数据的开放标准格式。i3dm&#xff08;Intel 3D Model&#xff09;是 3D Tiles 中用于表示三维模型&#xff08;如建筑物或其他对象&#xff09;的一个子格式。i3dm 格式的出现&#xff…

重新认识HTTPS

一. 什么是 HTTPS HTTP 由于是明文传输&#xff0c;所谓的明文&#xff0c;就是说客户端与服务端通信的信息都是肉眼可见的&#xff0c;随意使用一个抓包工具都可以截获通信的内容。 所以安全上存在以下三个风险&#xff1a; 窃听风险&#xff0c;比如通信链路上可以获取通信…

pycharm快速更换虚拟环境

目录 1. 选择Conda 虚拟环境2. 创建环境3. 直接选择现有虚拟环境 1. 选择Conda 虚拟环境 2. 创建环境 3. 直接选择现有虚拟环境

AI生活之我用AI处理Excel表格

AI生活之我用AI处理Excel表格 场景再现AI提问词AI代码运行调试结果心得感受 场景再现 因学习需要&#xff0c;整理了某个题库&#xff0c;方便自己刷题使用。 已将每套题打上了制定标签&#xff0c;得到一个Excel表格。截图如下&#xff1a; 需求是&#xff1a;一共35套题&…

Cesium加载大量点数据卡顿处理办法

1.使用entity绘制随机点 // 随机生成 1000 个点 const numPoints 1000;for (let i 0; i < numPoints; i) {const lon Math.random() * 360 - 180;const lat Math.random() * 180 - 90;const height 50000 Math.random() * 5000;// 将点添加到 Cesium Viewer 中viewer…

SCUI Admin + Laravel 整合

基于 Vue3 和 Element Plus 和 Laravel 整合开发 项目地址&#xff1a;持续更新 LaravelVueProject: laravel vue3 scui

DAY6 线程

作业1&#xff1a; 多线程实现文件拷贝&#xff0c;线程1拷贝一半&#xff0c;线程2拷贝另一半&#xff0c;主线程回收子线程资源。 代码&#xff1a; #include <myhead.h> sem_t sem1; void *copy1()//子线程1函数 拷贝前一半内容 {int fd1open("./1.txt",O…

Docker入门系列——Docker-Compose

Docker Compose 是 Docker 官方编排工具&#xff0c;用于定义和运行多容器 Docker 应用程序。它是一个轻量级的工具&#xff0c;用于快速配置和启动应用程序的不同服务。 Docker Compose 是什么 Docker Compose 最初是由 Docker 公司开发&#xff0c;并于 2014 年 6 月首次发布…

实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理

目录 一、ThreadLocal基本知识回顾分析 &#xff08;一&#xff09;ThreadLocal原理 &#xff08;二&#xff09;既然ThreadLocalMap的key是弱引用&#xff0c;GC之后key是否为null&#xff1f; &#xff08;三&#xff09;ThreadLocal中的内存泄漏问题及JDK处理方法 &…

Java基础-组件及事件处理(下)

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 面板组件 说明 常见组件 JScrollPane常用构造方法 JScrollPane设置面板滚动策略的方法 JScrollPane滚…

HarmonyOS ArkTS 下拉列表组件

Entry Component struct Index {defaultValue: string 下拉列表;// 定义选项数组&#xff0c;包含 value 和可选的 labeloptions: Array<SelectOption> [{ value: aaa },{ value: bbb },{ value: ccc },{ value: ddd },{ value: eee },{ value: fff },{ value: ggg },{…