promQL详细语法介绍

news2024/11/29 6:25:25

目录

promQL 在表达式中支持的数据类型

简单语法介绍

rate的用法

指标过滤搜索

时间单位 

聚合表达式

 11个聚合函数

 二元运算符(Binary Operators)

 二元运算符优先级

向量匹配

 向量一对一匹配

向量一对多/多对一匹配


promQL 在表达式中支持的数据类型

即时向量  时间

范围向量 数量

标量:单一数据没有方向的概念

字串: 一般都是标签对应值

GET(GET 请求方法):它是一种用于从服务器获取数据的请求方法

POST(POST 请求方法):它是一种用于向服务器提交数据的请求方法。 \

简单语法介绍

prometheus_http_requests_total 查询 HTTP的全部 请求的数量。

 prometheus_http_requests_total[2m]  获取过去 2 分钟内的数据

prometheus_http_requests_total[2m]offset 5m    往前5分钟开始,获取两分钟内的数据

prometheus_http_response_size_bytes_sum    /prometheus_http_response_size_bytes_count  在同一组数据中可以直接做除法

大小总和/数量

sum(prometheus_http_requests_total)by(code) ,,by(code)  选定code ,sum总请求数量

avg_over_time(prometheus_http_requests_total[1h])  计算过去 1 小时内的指标的平均值。

rate的用法

简单来讲就是在你指定时间内的每秒的平均变化量

他可以把即时向量转换为范围向量的图形结果

rate (prometheus_http_requests_total[2m])

指标过滤搜索

指定标签名之类的进行指定过滤

过滤前

 过滤后

 这样也可以

 进行速率计算

 _name_ ~  可以匹配标签名称,对名称进行过滤

时间单位 

聚合表达式

 PromQL中的聚合操作语法格式可采用如下面两种格式之一

        ◼ <aggr-op>([parameter,] <vector expression>) [without|by (<label list>)]
        ◼ <aggr-op> [without|by (<label list>)] ([parameter,] <vector expression>)

 分组聚合:先分组、后聚合

         ◼ without:从结果向量中删除由without子句指定的标签,未指定的那部分标签则用作分组标准;

        ◼ by:功能与without刚好相反,它仅使用by子句中指定的标签进行聚合,结果向量中出现但未被by子句指定的 标签则会被忽略;

◆为了保留上下文信息,使用by子句时需要显式指定其结果中原本出现的job、instance等一类的标签

 ###因为他是只有或者排除,所以需要聚合函数进行统计列出###

 sum without (code)(prometheus_http_requests_total)   #统计de标签的种类

 sum by (code)(prometheus_http_requests_total)  #统计只有code标签的种类

 11个聚合函数

  • sum(): 计算时间序列数据的总和。
  • avg(): 计算时间序列数据的平均值。
  • max(): 找到时间序列数据的最大值。
  • min(): 找到时间序列数据的最小值。
  • count():  计算时间序列数据的计数。
  • stddev(): 计算时间序列数据的标准差。
  • stdvar(): 计算时间序列数据的方差。
  • topk(): 找到时间序列数据中的前 K 个最大值。
  • bottomk(): 找到时间序列数据中的前 K 个最小值。
  • quantile(): 计算时间序列数据的分位数。
  • rate(): 计算时间序列数据的速率(变化率)。

 二元运算符(Binary Operators)

PromQL支持基本的算术运算和逻辑运算,这类运算支持使用操作符连接两个操作数,因而也称为二元运算符或二元操作符;

  1. 算术运算符:

    • +:加法运算符。
    • -:减法运算符。
    • *:乘法运算符。
    • /:除法运算符。
    • %:取模运算符。
  2. 比较运算符:

    • ==:相等性比较运算符。
    • !=:不等性比较运算符。
    • >:大于比较运算符。
    • <:小于比较运算符。
    • >=:大于等于比较运算符。
    • <=:小于等于比较运算符。
  3. 逻辑运算符:

    • and:逻辑与运算符。
    • or:逻辑或运算符。
    • unless:逻辑非运算符。

  ◼ 目前,该运算仅允许在两个即时向量间进行,尚不支持标量参与运算;

 二元运算符优先级

Prometheus的复杂运算中,二元运算符存在如下给定次序中所示的由高到低的优先级

◼ ^

◼ *, /, %

◼ +, -

◼ ==, !=, =, >

◼ and, unless

◼ or

 具有相同优先级的运算符满足结合律(左结合),但幂运算除外,因为它是右结合机制;

 可以使用括号( )改变运算次序;

向量匹配

 即时向量间的运算是PromQL的特色之一;运算时,PromQL为会左侧向量中的每个元素找到匹配的元素,其匹配行为有两种基本类型
◼ 一对一 
◼ 一对多或多对一 

 向量一对一匹配

即时向量的一对一匹配

  • 从运算符的两边表达式所获取的即时向量间依次比较,并找到唯一匹配(标签完全一致)的样本值;
  • 找不到匹配项的值则不会出现在结果中;
rate(prometheus_http_requests_total{code="200"}[5m])>0.1*rate(prometheus_http_requests_total{code="200"}[1d])

这个例子就是一对一,意思就是过去五分的总值是否大于过去1天code200的总值的百分之一

  下面这个官方图例子就是多对一匹配的例子

向量一对多/多对一匹配

一对多/多对一,需要保证相对的数据是有用的

一对多/多对一匹配

  •  “一”侧的每个元素,可与“多”侧的多个元素进行匹配;
  •  必须使用group_left或group_right明确指定哪侧为“多”侧; 

group_left表示左侧为多测,  多测:表示可以出现多次,一侧表示只能有一个进行比较

group_right表示右侧为多测

 一对多

rate(prometheus_http_requests_total{code=~"2.*"}[5m])>.1*rate(prometheus_http_requests_total[5m])
这个 Prometheus 查询表达式是一个告警规则,用于检测过去 5 分钟内以状态码以 "2" 开头的 HTTP 请求的速率是否超过总请求数的 10%。
    

    #prometheus_http_requests_total 记录了所有 HTTP 请求的计数器指标。。
    #{code=~"2.*"} 是一个标签选择器,用于筛选出具有状态码以 "2" 开头的时间序

 下面这个官方图例子就是多对一匹配的例子

rate(Method_code:http_errors[5m]) / ignoring(code) group_left rate(method:http_requests[5m])

    rate(Method_code:http_errors[5m]):计算过去 5 分钟内 Method_code:http_errors 指标的速率。
    / ignoring(code):在计算过程中忽略 code 标签的差异。
    group_left:按照左侧的标签进行分组。
    rate(method:http_requests[5m]):计算过去 5 分钟内 method:http_requests 指标的速率,并按照 method 标签进行分组。

这个表达式使用 Prometheus 查询语言(PromQL),用于计算在过去 5 分钟内的 HTTP 错误率与 HTTP 请求速率之比,同时忽略状态码标签(code)。

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

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

相关文章

抽象类与纯虚函数的具体应用

运行代码&#xff1a; //定义一个带有一个纯虚函数pvf()的B2类 //定义D21类&#xff0c;包含一个string数据成员和一个覆盖pvf()的成员函数&#xff0c;D21::pfv()输出string数据成员的值 //定义D22类&#xff0c;它与D21类一样&#xff0c;只是数据成员为int类型 //定义函数f…

数据库应用:MySQL数据库SQL高级语句与操作

目录 一、理论 1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 二、实验 1.克隆表与清空表 2.SQL高级语句 3.SQL函数 4.SQL高级操作 三、总结 一、理论 1.克隆表与清空表 克隆表&#xff1a;将数据表的数据记录生成到新的表中。 &#xff08;1&#xff0…

【算法集训之线性表篇】Day 04

文章目录 题目一分析思路一思路二 代码实现效果题目二分析代码实现效果 题目一 从有序顺序表中删除所有其值重复的元素&#xff0c;使所有元素的值都不相同。 分析 思路一 首先&#xff0c;在有序顺序表中&#xff0c;所有值重复的元素相邻。为此&#xff0c;我们只需顺序访…

如何批量复制淘宝商品上传上架到虾皮 shopee (轻松学会宝贝复制技巧)

今天&#xff0c;入驻虾皮的商家越来越多&#xff0c;且很多的 shopee 店主在国内都开了淘宝店&#xff0c;当 shopee 店铺入驻成功后&#xff0c;想把淘宝店铺的商品搬到 shopee&#xff0c;怎么搬呐&#xff1f; 方法 / 步骤 方法1&#xff1a;整理你想要采集的店铺首页链接…

MySQl数据库第六课-------SQl命令的延续------快来看看

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com ———————————————————————————————— 目录 SQl语句 数据库操作 数据表操作 SQL增删 ———————————————————————————— 插播小知识 1…

stm32(独立看门狗和窗口看门狗)

独立看门狗介绍 什么是看门狗&#xff1f; 在由单片机构成的微型计算机系统中&#xff0c;由于单片机的工作常常会受到来自外界电磁场的干扰&#xff0c;造 成程序的跑飞&#xff0c;而陷入死循环&#xff0c;程序的正常运行被打断&#xff0c;由单片机控制的系统无法继续工作…

setTimeout

Promise延时的几种表述方法 第一种 var pdocument.getElementById("demo"); async function myFunction(){await new Promise(function(resolve){setTimeout(function(){p.innerHTML"延时成功";resolve();},1000);}); } myFunction();第二种 var pdocum…

完了完了完了!线上发生 OOM 了!

现象 线上某个服务有接口非常慢&#xff0c;通过监控链路查看发现&#xff0c;中间的 GAP 时间非常大&#xff0c;实际接口并没有消耗很多时间&#xff0c;并且在那段时间里有很多这样的请求。 原因分析 先从监控链路分析了一波&#xff0c;发现请求是已经打到服务上了&#…

ViperGPT解析:结合视觉输入与文本查询生成和执行程序

ViperGPT&#xff1a;结合视觉输入与文本查询生成和执行程序 ViperGPT 是一个混合视觉和语言处理模型&#xff0c;旨在解决视觉查询问题。这种问题需要视觉处理和推理能力的结合&#xff0c;ViperGPT通过利用代码生成模型&#xff0c;将视觉和语言模型组合成子例程&#xff0c…

【Java】弄清多态,看这一篇就够了|由浅入深,保姆级详解

博主简介&#xff1a;努力学习的预备程序媛一枚~博主主页&#xff1a; 是瑶瑶子啦所属专栏: Java岛冒险记【从小白到大佬之路】 前言 在上篇【Java】还不理解继承&#xff1f;一篇文章看懂继承|继承入门&#xff0c;我们了解了继承的概念、如何时两个类建立继承关系is-a、以及…

AndroidUI绘制流程

Android源码阅读 UI绘制流程 环境 Java 11android 11 由于学习的课程api 不一致 导致源码有些关键方法无法进入仔细阅读 采用截图的方式理解思路 view添加到窗口 进入到源码中可以发现 &#xff0c;每个activity 默认生成的代码中都会有一个setContentView方法&#xff0c…

Python采集课堂视频教程, m3u8视频解密

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用&#xff1a; requests >>> pip install requests pycryptodome --> pip install pycryptodome re 第三方模块安装方法&#xff1a; win R 输…

SpringBoot+MinIO实现minio部署和使用

Minio是一个go编写基于Apache License v2.0开源协议的对象存储系统,是为海量数据存储、人工智能、大数据分析而设计&#xff0c;它完全兼容Amazon S3接口&#xff0c;十分符合存储大容量的非结构化数据从几十kb到最大5T不等。是一个小而美的开源分布式存储软件。 特点 简单、可…

windows系统下载大白菜制作iso镜像文件

背景 1. ventory制作了U盘启动盘&#xff0c;ventory只能加载iso文件&#xff0c; 我们有些操作需要进入到winpe系统进行操作&#xff0c;故需要制作大白菜pe的iso文件 操作步骤 下载大白菜 大白菜u盘启动盘制作工具_大白菜u盘装系统_大白菜pe_大白菜官网-首页 (windowsrw.…

一个判断 I2C 总线通信异常原因的方法

一个判断 I2C 总线通信异常原因的方法 参考链接 【经验分享】一个判断 I2C 总线通信异常原因的方法 (stmicroelectronics.cn)https://shequ.stmicroelectronics.cn/thread-633302-1-1.html 至于如何在i2c总线中如何使用还没有弄明白。后续再看。 使用方法记录 阻值分配 图中…

Confidence Regularized Self-Training 阅读笔记

Confidence Regularized Self-Training 领域自适应研究的最新进展表明&#xff0c;深度自训练是实现无监督领域自适应的有效手段。这些方法通常涉及到一个迭代过程&#xff0c;即在目标域上进行预测&#xff0c;然后将自信的预测作为伪标签进行再训练。然而&#xff0c;由于伪…

泛微打造国资委国企双端的监管平台,数据互联,动态管理

数字政府和数字监管成为趋势。数字化方式能够助力完善国有资产管理体制&#xff0c;促进国有资产保值增值&#xff0c;推动国有资本做强做优做大&#xff0c;有效防止国有资产流失。 国资监管过程中存在着诸多挑战 监管企业众多&#xff0c;需要建立不同的管理模式。既要发挥…

C/C++库函数之——str类和mem篇(常用速学)

目录 一&#xff0c;str类 1&#xff09;strlen 2&#xff09;strcpy 3&#xff09;strcmp 4&#xff09;strcat 5&#xff09;strstr 二&#xff0c;mem类函数 1&#xff09;memcpy 2&#xff09;memmove 一&#xff0c;str类 1&#xff09;strlen 用途&#xff1a…

光伏5G多合一融合终端|光伏多合一融合终端|光伏多合一群调群控网关|分布式光伏群控群调|光伏AGC/AVC系统这几者之间什么技术关系,多少钱一套预算?

光伏5G多合一融合终端|光伏多合一融合终端|光伏多合一群调群控网关|分布式光伏群控群调|光伏AGC/AVC系统这几者之间什么技术关系&#xff0c;多少钱一套预算&#xff1f; 一&#xff1a;光伏5G多合一融合终端的功能 光伏5G多合一融合终端的功能&#xff1a;群调群控/AGC/AVC功…

[MMDetection]生成测试集预测的test.bbox.json文件

基于MMdetection3.10 困扰了大半天的问题&#xff0c;终于解决了。 方法1&#xff1a;定位到configs\_base_\datasets\coco_detection.py 将里面的路径全部换为自己的路径&#xff0c;最重要的是将以下注释取消掉&#xff0c;特别注意以下两个参数 改好的文件示例 # datase…