PromQL实现Actuator获取的JVM指标的Full GC次数监控

news2025/1/12 6:48:12

Spring Boot 版本需要2.0.0或更高版本。
添加Micrometer Prometheus registry依赖:

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

在application.properties中开启prometheus端点:

management.endpoints.web.exposure.include=health,prometheus,metrics

做完上述配置后,Actuator就可以通过Micrometer获取到JVM的GC指标,其中包括:

  • jvm.gc.live.data.size (Full GC前老年代大小)
  • jvm.gc.memory.promoted (GC期间晋升大小)
  • jvm.gc.max.data.size (Full GC后老年代大小)
    在这里插入图片描述

原始指标 jvm_gc_live_data_size_bytes 表示 JVM 堆内存中存活的数据大小(GC 前老年代的内存使用大小)。

groups:
  - name: jvm.rules
    rules:
      - alert: JVMFullGcCountTooMuchIn1d
        expr: sum(changes(jvm_gc_live_data_size_bytes[5m])<0.9)by (namespace,application,env)>1
        for: 0m
        labels:
          severity: warning
          team: application
        annotations:
          summary: "full GC次数>1次"
          description: "(env: {{ $labels.env }})应用{{ $labels.application }}full GC次数为{{ $value }}次 \n"

这个 PromQL 表达式的作用是计算最近5分钟内,jvm_gc_live_data_size_bytes 指标变化小于0.9的次数。
具体解释:

  1. changes(jvm_gc_live_data_size_bytes[5m]) 计算最近5分钟的存活数据大小的变化比例。
  2. changes(jvm_gc_live_data_size_bytes[5m]) < 0.9 表示变化比例小于0.9,即减少超过10%。
  3. sum(…) 对上一步的比较结果求和,即统计变化比例小于0.9的次数。
  4. sum(…) > 1 表示最近5分钟内,变化幅度超过10%的次数大于1。
    通常老年代内存数据大小的明显下降,意味着发生了 Full GC。
    所以这个表达式的作用就是检测最近5分钟内是否发生过多次 Full GC
    通过设置不同的时间范围和变化比例阈值,可以根据需要检测 Full GC 情况。
    这个表达式利用了 Prometheus 的聚合查询功能,可以实现对 GC 行为的监控检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/858911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪个牌子的运动耳机好、最好的运动耳机推荐

在当今快节奏的生活中&#xff0c;运动已经成为许多人追求健康与活力的重要组成部分。而在运动过程中&#xff0c;一款出色的运动耳机不仅能为我们提供激励和动力&#xff0c;还能让我们沉浸在音乐的世界中&#xff0c;享受极致的运动体验。然而&#xff0c;市场上琳琅满目的运…

[LeetCode - Python] 278.第一个错误的版本(Easy)

题目&#xff1a; 278.第一个错误的版本&#xff08;Easy&#xff09; 代码&#xff1a; # 常用的 左闭右开&#xff0c;二分法&#xff0c;要当心判断条件 到底是True还是False # The isBadVersion API is already defined for you. # def isBadVersion(version: int) -&g…

【Spring security 解决跨域】

security 跨域 概述方案方案一方案二方案三方案四 主页传送门&#xff1a;&#x1f4c0; 传送 概述 Spring Security是一个功能强大且高度可定制的&#xff0c;主要负责为Java程序提供声明式的身份验证和访问控制的安全框架。其前身是Acegi Security,后来被收纳为Spring的一个…

hcip的BGP实验

题目 拓扑图 思路&#xff1a; 1、给各个设备配置IP地址及环回接口 2、配置R2、R3、R4&#xff0c;三个设备的OSPF环境 3、将R1、R2、R3、R4、R5建立BGP对等体关系 4、建临时&#xff0c;将源地址也修改为环回接口 5、宣告时&#xff0c;将BGP路由传递给本地的邻居时修改下…

mysql一些统计实用函数

文章目录 一对多&#xff0c;多的一端只查询最新数据YEAR 年份函数MONTH 月份函数QUARTER 季度函数往前递推十年往后递推十年查询去年12月份统计身份证户籍所在地人数 一对多&#xff0c;多的一端只查询最新数据 ROW_NUMBER() over(PARTITION BY evt_id ORDER BY evt_node_rec…

挖洞小技巧

挖洞小技巧 1. Google语法1.1. 基础语法1.2. 操作符 2. 寻找漏洞2.1. SQL注入2.1.1. 不带公司2.1.2. 带公司2.1.3. 如何测试 2.2. 后台管理漏洞2.2.1. 查询单个网站2.2.2. 常见后台管理路径 2.3. 支付漏洞2.4. 文件上传漏洞2.5. 查找文件类型2.6. 敏感信息泄露 3. 刷分 1. Goog…

分享讨论学习IT上培训班有用吗?个人感悟

不知不觉一入行2年有余&#xff0c;回顾自己转行的学习历程&#xff0c;历历在目。我对培训机构好感度为0&#xff01; IT分行业发展未来&#xff0c;前景还是很好的&#xff0c;但是入门方向很重要&#xff0c;要选择什么方向去学学完才有钱景&#xff0c;需要自己 &#xff0…

直接在html中引入Vue.js的cdn来实现Vue3的组合式API

Vue3的组合式API是使用setup函数来编写组件逻辑的。setup函数是Vue3中用于替代Vue2的选项API&#xff08;如data、methods等&#xff09;的一种方式。在setup函数中&#xff0c;你可以访问到一些特殊的响应式对象&#xff0c;并且可以返回一些可以在模板中使用的数据、方法等。…

[计算机入门] 使用输入法

2.12 使用输入法 输入法是一种计算机软件&#xff0c;它允许用户通过键盘在计算机上输入文字和符号。输入法主要用于处理中文、日语、韩语等语言中较为复杂的字形和字音&#xff0c;使用户能够快速、方便地输入这些文字。 在使用输入法时&#xff0c;用户可根据输入法提供的提…

百数私有云模式

百数私有云模式是百数低代码平台中带有独立服务器的模式 简介&#xff1a;百数的私有化部署是搭建在真正的“私有云”上&#xff0c;拥有独立的服务器&#xff0c;ip&#xff0c;存储&#xff0c;可用企业自己的域名&#xff0c;使用企业自己的Logo&#xff0c;通过企业自身设…

Linux--计算CPU算力

#include <iostream> #include <unistd.h> #include <signal.h>using namespace std;int count 0;void catchSig(int signum) {//cout<< "进程捕捉到了一个信号&#xff0c;正在处理中&#xff1a; "<< signum << " pid: …

【JavaScript】match用法 | 正则匹配

match正则匹配 var e "www.apple.com:baidu.com" var match e.match(/com/g) console.log("match: "match);> "match: com,com"match返回值问题 match的返回值是一个数组 数组的第0个元素是与整个正则表达式匹配的结果 数组的第1个元素是…

展会直击丨虹科实车上展,展会首日汽车行业解决方案备受青睐!

虹科特装展 8月9日&#xff0c;上海汽车测试展和IME在上海世博展览馆拉开序幕&#xff0c;虹科携众多汽车相关解决方案在【3002】展位与各位见面。 开展首日 虹科展位现场实况一览 ↓↓↓↓↓↓ 虹科展位前人头攒动&#xff0c;实车展示自动驾驶等汽车相关解决方案引来各位客…

如何让PPT看起来规整统一

一、字体 常见问题&#xff1a;字体风格太多、文字可读性差、页面风格不匹配 1.使用文字的几个原则 &#xff08;1&#xff09;一份PPT最多使用两种中文字体 比如首页大标题宋体、正文黑体、其他页标题黑体加粗。通过粗细、字号、不同颜色背景等区分不同层级。注意 使用粗体…

opencv基础57-模板匹配cv2.matchTemplate()->(目标检测、图像识别、特征提取)

OpenCV 提供了模板匹配&#xff08;Template Matching&#xff09;的功能&#xff0c;它允许你在图像中寻找特定模板&#xff08;小图像&#xff09;在目标图像中的匹配位置。模板匹配在计算机视觉中用于目标检测、图像识别、特征提取等领域。 以下是 OpenCV 中使用模板匹配的基…

怎么学习机械学习相关的技术? - 易智编译EaseEditing

学习DOM&#xff08;文档对象模型&#xff09;相关技术是成为前端开发者的关键一步&#xff0c;因为DOM是用于操作和控制网页内容的基础。以下是学习DOM相关技术的步骤和方法&#xff1a; 了解基础知识&#xff1a; 首先&#xff0c;了解什么是DOM&#xff0c;它如何表示HTML…

Python小白入门:文件、异常处理和json格式存储数据

这里写自定义目录标题 所用资料 一、从文件中读取数据1.1 读取整个文件1.2 文件路径1.3 逐行读取1.4 创建一个包含文件各行内容的列表1.5 使用文件的内容1.6 包含一百万位的大型文件1.7 圆周率值中包含你的生日吗练习题 二、写入文件2.1 写入空文件2.2 写入多行2.3 附加到文件练…

Mask RCNN网络结构以及整体流程的详细解读

文章目录 1、概述2、Backbone3、RPN网络3.1、anchor的生成3.2、anchor的标注/分配3.3、分类预测和bbox回归3.4、NMS生成最终的anchor 4、ROI Head4.1、ROI Align4.2、cls head和bbox head4.3、mask head 1、概述 Mask RCNN是在Faster RCNN的基础上增加了mask head用于实例分割…

PY32F002A单片机开发板,主频最高24M,Flash 20K,Sram 3K

PY32F002A开发板为PY32F002A芯片提供了一个简易的硬件开发环境。开发板使用 type—c 接口作为供电源。提供包括扩展引脚在内的以及 SWD、Reset、Boot、User button key、Reset key、LED 等外设资源。PY32F002A开发板支持使用ST link,JI link,DAP link进行烧录开发&#xff0c;开…

图的深度优先遍历和广度优先遍历

目录 图的创建和常用方法 深度优先遍历&#xff08;Depth First Search&#xff09; 广度优先遍历&#xff08;Broad First Search&#xff09; 图的创建和常用方法 //无向图 public class Graph {//顶点集合private ArrayList<String> vertexList;//存储对应的邻接…