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

Grafana+Prometheus技术文档-进阶使用-监控spring-boot项目

阿丹:

        之前已经实现了使用Prometheus来对服务器进行了监控和仪表盘的创建,现在就需要对这些监控方法使用在spring-boot中去。

实现思路:

        1、集成Actuator

        2、加入Prometheus的依赖

        3、配置开放端口、以及开放监控

        4、配置Prometheus中的配置

        5、使用Grafana中的SpringBoot Actuator展示模版

一、集成Actuator

 引入依赖

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

Spring Actuator是Spring框架中的一个模块,旨在为应用程序提供监控和管理的功能。它为开发人员提供了一系列的HTTP端点,可以用来查看应用程序的运行状况、性能指标、日志信息等。Actuator可以帮助开发人员进行应用程序的监控、诊断和管理,从而更好地了解应用程序的运行情况。

Spring Actuator提供了一些常用的端点,包括:

  1. /health:用于检查应用程序的健康状况,例如数据库连接是否正常、磁盘空间是否足够等。

  2. /info:用于查看应用程序的一般信息,例如应用程序的名称、版本、描述等。

  3. /metrics:用于查看应用程序的运行指标,例如CPU使用率、内存使用量、请求次数等。

  4. /logfile:用于查看应用程序的日志文件。

  5. /env:用于查看应用程序的环境变量。

除了这些常用端点,Actuator还提供了一些其他功能,如配置端点、线程Dump端点、热重启端点等。开发人员可以根据自己的需求自定义配置和使用这些端点。

在Spring项目中集成Actuator非常简单,只需在项目的依赖中加入相关的Actuator模块,并进行必要的配置,即可启用Actuator的功能。

依赖说明:

在Spring Boot应用程序中使用Prometheus进行监控时,spring-boot-starter-actuator依赖提供了与Prometheus进行集成的能力。通过添加这个依赖,你可以使Spring Boot应用程序暴露所需的端点,以供Prometheus抓取并收集监控指标。

具体来说,spring-boot-starter-actuator中的Actuator模块启用了以下与Prometheus相关的功能:

  1. 自动配置:Actuator自动配置模块将根据在应用程序中定义的配置属性,自动为应用程序启用与Prometheus集成的相关功能。这使得无需手动配置即可与Prometheus进行集成。
  2. 端点暴露:Actuator提供了一组HTTP端点,其中包括与Prometheus监控相关的端点。这些端点将监控数据暴露给Prometheus进行抓取。
  3. Metrics和Health信息:通过Actuator的端点,你可以获取应用程序的Metrics信息和Health状态。这些信息将被Prometheus抓取并存储,以供进一步的分析和警报。

总之,spring-boot-starter-actuator依赖使得Spring Boot应用程序能够与Prometheus进行集成,从而通过Prometheus对应用程序进行监控和度量。

二、引入Prometheus依赖micrometer-registry-prometheus

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

micrometer-registry-prometheus这个依赖在Spring Boot项目中使用Prometheus进行监控时,提供了将应用程序的度量数据暴露给Prometheus的功能。

具体来说,micrometer-registry-prometheus是一个Micrometer的Prometheus注册器实现。Micrometer是一个用于Java应用程序的度量库,它提供了一种标准化的方式来收集和报告度量数据。通过添加这个依赖,你可以将Micrometer与Prometheus集成,从而将应用程序的度量数据暴露给Prometheus进行抓取。

当与Prometheus集成后,你可以通过配置将Micrometer生成的度量数据发送到Prometheus,然后使用PromQL进行查询和分析。这样,你可以获得应用程序的性能指标,如请求处理时间、数据库查询速率等,以便进行监控和问题诊断。

此外,micrometer-registry-prometheus还提供了一些额外的功能,如自定义度量数据的命名和标签,以及与Prometheus的自动发现功能进行集成等。

总之,micrometer-registry-prometheus依赖使得Spring Boot项目能够与Prometheus进行集成,以便更好地监控应用程序的性能。

三、添加yml配置

因为在默认的情况下,端点是不可用的,所以必须要公开,所以需要添加如下配置

management:endpoints:web:exposure:include: prometheus,health,info

并且指定服务名字

spring:application:name: adn-ask

四、 添加Prometheus配置

scrape_configs:- job_name: 'adn-ask'   #prometheus任务名称scrape_interval: 5s  #每五秒抓取一次数据metrics_path: '/actuator/prometheus'   #数据来源的地址static_configs:- targets: ['localhost:8081']   #拉去数据的地址

 

 

 注意在使用的时候服务名字一定要对应以及下面的端口号和ip地址。

五、导入SpringBoot Actuator的展示模板

使用的模版id为:12900 

提供展板的官网: 

Dashboards | Grafana Labs

相关文章:

Grafana+Prometheus技术文档-进阶使用-监控spring-boot项目

阿丹&#xff1a; 之前已经实现了使用Prometheus来对服务器进行了监控和仪表盘的创建&#xff0c;现在就需要对这些监控方法使用在spring-boot中去。 实现思路&#xff1a; 1、集成Actuator 2、加入Prometheus的依赖 3、配置开放端口、以及开放监控 4、配置Prometheus中的配置…...

PG常用SQL

数据库 创建数据库 PostgreSQL 创建数据库可以用以下三种方式&#xff1a; 1、使用 CREATE DATABASE SQL 语句来创建。2、使用 createdb 命令来创建。3、使用 pgAdmin 工具。 CREATE DATABASE 创建数据库 CREATE DATABASE 命令需要在 PostgreSQL 命令窗口来执行&#xff0…...

分模块开发的意义及开发步骤

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaweb 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Maven进阶 一、分模块开发1.1分模块开发的意义1.2分模块开…...

vue-router中的一些 API

在Vue.js的vue-router中&#xff0c;一些重要api 1、RouterHistory&#xff1a;这是 vue-router 提供的路由历史记录对象。它可以跟踪当前页面的路由历史&#xff0c;并提供一些方法和属性来管理导航和历史记录。在 vue-router 中&#xff0c;有两种类型的路由历史记录对象&…...

go-zero 是如何实现令牌桶限流的?

原文链接&#xff1a; 上一篇文章介绍了 如何实现计数器限流&#xff1f;主要有两种实现方式&#xff0c;分别是固定窗口和滑动窗口&#xff0c;并且分析了 go-zero 采用固定窗口方式实现的源码。 但是采用固定窗口实现的限流器会有两个问题&#xff1a; 会出现请求量超出限…...

Oracle/PL/SQL奇技淫巧之ROWNUM伪列

ROWNUM伪列 ROWNUM是一个伪列&#xff0c;它是根据每次查询的结果动态生成的一列递增编号&#xff0c;表示 Oracle 从表中选择该行的顺序&#xff0c;选择的第一行ROWNUM为1&#xff0c;第二行ROWNUM为2&#xff0c;以此类推。 注意1&#xff1a; ROWNUM伪列是在WHERE子句之…...

“MongoDB基础知识【超详细】

"探索MongoDB的无边之境&#xff1a;沉浸式数据库之旅" 欢迎来到MongoDB的精彩世界&#xff01;在这个博客中&#xff0c;我们将带您进入一个充满创新和无限潜力的数据库领域。无论您是开发者、数据工程师还是技术爱好者&#xff0c;MongoDB都将为您带来一场令人心动…...

腾讯24届校招内推

校招开始啦&#xff5e;有兴趣的话可以扫我的码投&#xff0c;也可以分享给身边找工作的同学&#xff5e; ❤投递攻略 1️⃣腾讯校招步骤&#xff0c;先微信扫码绑定内推关系&#xff0c;后在电脑上上传更改简历和部门投递 2️⃣投递时将选择投递部门&#xff0c;投递后将在…...

星际争霸之小霸王之小蜜蜂(二)--类的使用

目录 前言 一、将设置内容写在一个类里 二、设置小蜜蜂的造型 三、设置猫蜜蜂的参数 四、绘制猫蜜蜂到窗口 总结 前言 昨天我们设置好了窗口&#xff0c;下面我们需要向窗口中添加元素了。 一、将设置内容写在一个类里 我个人理解书上的意思是要创建一个类&#xff0c;将所有需…...

AndroidStudio升级Gradle之坑

最近在做旧工程的升级&#xff0c;原来的Gradle版本是4.6的&#xff0c;需要升级到7.6&#xff0c;JDK从8升级到17&#xff0c;一路淌了很多坑&#xff0c;逐个记录下吧 1、Maven仓库需要升级到https 你会遇到这个报错 Using insecure protocols with repositories, without …...

C# int ? 关键字使用方法

使用C#的时间也不算短。 但是今天看到了一个从来没有见过的写法 Int &#xff1f;这是个什么写法&#xff0c;没见过啊&#xff0c;百度了查一下&#xff0c;也在这里记录一下。 1、int? 关键字说明 (1)、int? 表示一个int类型,且该int类型可空,如果不加?的话,那么int类…...

Redis_主从复制

8. 主从复制 8.1 简介 主从库采用读写分离的方式 读操作&#xff1a;主库、从库都可以处理写操作&#xff1a;首先写到主库执行&#xff0c;然后再将主库同步给从库。 实现读写分离&#xff0c;性能扩展 容灾快速恢复 8.2 主从复制步骤 创建一个目录 ,在root下创建一个m…...

Postman 的 Pre-request Script 使用RSA加解密

文章目录 一、概述 一、概述 Postman内置的Js不支持进行RSA加解密&#xff0c;所以需要引入forgeJS来实现。在 Pre-request Script使用以下脚本&#xff1a; // ------ 导入RSA ------ if (!pm.globals.has("forgeJS")) {pm.sendRequest("https://raw.githubu…...

【Swagger】只需要3步搭建Swagger环境,就可以让你的项目实现Swagger在线文档,实时浏览,修改展示

目录 1. pom.xml文件中添加Swagger的jar包 2. 配置Swagger 3. 项目启动中加入Swagger注解的开关&#xff0c;启动Swagger功能 4. 启动项目&#xff0c;查看效果 Swagger 的功能这里就不多说明了&#xff0c;相信大家都懂的&#xff0c;好奇多问一句&#xff0c;大家有知道其…...

pytest运行时参数说明,pytest详解,pytest.ini详解

一、Pytest简介 1.pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有一下几个特点&#xff1a; 简单灵活&#xff0c;容易上手&#xff0c;支持参数化 2.能够支持简单的单元测试和复杂的功能测试&#xff0c;还可以用来做selenium、appium等自动化测试&#xf…...

Matplotlib绘图知识小结--Python数据分析学习

一、Pyplot子库绘制2D图表 1、Matplotlib Pyplot Pyplot 是 Matplotlib 的子库&#xff0c;提供了和 MATLAB 类似的绘图 API。 Pyplot 是常用的绘图模块&#xff0c;能很方便让用户绘制 2D 图表。 Pyplot 包含一系列绘图函数的相关函数&#xff0c;每个函数会对当前的图像进行…...

mouseover、mouseout和mouseenter、mouseleave之间的区别(配对使用)

以上四个事件都是与鼠标相关的事件&#xff0c;其中mouseenter和mouseover均是鼠标移入时触发的事件&#xff0c;但是使用mouseover的时候会触发冒泡事件&#xff0c;也就是&#xff0c;当父元素和子元素均绑定mouseover事件的时候&#xff0c;如果触发子元素的mouserover事件&…...

【论文阅读】基于深度学习的时序预测——Autoformer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…...

【AI】《动手学-深度学习-PyTorch版》笔记(十五):网络中的层、块和参数

AI学习目录汇总 1、什么是块? 在线性模型中,我们关注过单个神经元(单个神经网络的输入和输出); 在多层感知机中,我们关注过整层的神经元(前一层的输出作为后一层的输入); 如果将“多层感知机”视为一整体,称为“块”,可以将前一个块的输出作为后一个块的输入。 块…...

Flink之Task解析

Flink之Task解析 对Flink的Task进行解析前,我们首先要清楚几个角色TaskManager、Slot、Task、Subtask、TaskChain分别是什么 角色注释TaskManager在Flink中TaskManager就是一个管理task的进程,每个节点只有一个TaskManagerSlotSlot就是TaskManager中的槽位,一个TaskManager中可…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...