首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PromQL之函数

Prometheus 版本 2.41.0 平台统一监控的介绍和调研 直观感受PromQL及其数据类型 PromQL之选择器和运算符 PromQL之函数 PromQL 聚合函数 PromQL 的聚合函数只能用于瞬时向量...count 对分组中的时间序列数目进行求和 quantile 示例: 返回在线微服务的数量 count(up == 1) count_values 表示时间序列中每一个样本值出现的次数 示例: 计算...样本值 出现的次数 使用 up == 1, 看到 样本值1 出现了2次 使用 count_values("count", up == 1) 后的结果如下: 常用于频率直方图 bottomk...HTTP请求的增长数 原始数据: increase后数据: resets 输入一个区间向量,返回一个计数器重置的次数,两个连续样本之间的值的减少被认为是一次计数器重置 语法:resets...tf scalar) changes 输入一个区间向量,返回这个区间向量中每个样本数据值变化的次数(瞬时向量) 语法:changes(v range-vector) histogram_quantile

3.3K10

树义带你学 Prometheus(四):PromQL 快速入门

范围查询 我们上面直接通过类似 prometheus_http_requests_total 表达式查询时间序列时,同一个指标同一标签只会返回一条数据。...这样的表达式我们称之为瞬间向量表达式,而返回的结果称之为瞬间向量。 而如果我们想查询一段时间范围内的样本数据,那么我们就需要用到区间向量表达式,其查询出来的结果称之为区间向量。...除了使用m表示分钟以外,PromQL的时间范围选择器支持其它时间单位: s - 秒 m - 分钟 h - 小时 d - 天 w - 周 y - 年 时间位移操作 在瞬时向量表达式或者区间向量表达式中,都是以当前时间为基准...当我们执行如下 PromQL 时,会筛选出最小的记录值。 min(prometheus_http_requests_total) ? max 最大值 返回所有记录的最大值。...其中参数 v 是一个区间向量,increase 函数获取区间向量中的第一个后最后一个样本并返回其增长量。

1.9K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    保姆级 Prometheus PromQL 讲解与实战操作

    一、PromQL 介绍 PromQL(Prometheus Query Language)为 Prometheus tsdb 的查询语言。...因为 PromQL 的正则表达式基于 RE2 的语法,但是 RE2 不支持向前不匹配表达式,所以!~的出现是作为一种替代方案,以实现基于正则表达式排除指定标签值的功能。...~ "/prometheus/user/.*"} 六、范围选择器 我们可以通过将时间范围选择器 range vector selectors 附加到查询语句中,指定为每个返回的区间向量样本值中提取多长的时间范围...例如:我们可以通过 prometheus_http_requests_total 查询出每个接口的请求次数,但是如果我们想筛选出请求次数超过 20 次的接口呢?..., 返回这个区间向量内每个样本数据值变化的次数(瞬时向量)。

    11.1K36

    PromQL

    范围查询 直接通过类似于PromQL表达式prometheus_http_requests_total查询时间序列时,返回值中只会包含该时间序列中的最新的一个样本值,这样的返回结果我们称之为瞬时向量,而相应的这样的表达式称之为瞬时向量表达式...而我们如果想得到过去一段时间范围内的样本数据时,我们则需要使用区间向量表达式,区间向量表达式和瞬时向量表达式之间的差异在于区间向量表达式中我们需要定义时间选择的范围,是假范围通过时间范围选择器[] 来定义...通过区间向量表达式查询到的结果我们成为区间向量 支持的单位: s 秒 m 分钟 h 小时 d 天 w 周 y 年 时间位移操作 在瞬间向量表达式或者区间向量表达式中,都是以当前时间为基准的: prometheus_http_requests_total...函数 sum求和函数 一般来说,如果描述样本特征的标签(label)在并非唯一的情况下,通过PromQL查询数据,会返回多条满足这些特征维度的时间序列。...increase(v range-vector)增长率 其中参数v 是一个区间向量,increase函数获取区间向量中的第一个和最后一个样本并返回其增长量。

    2.7K21

    PromQL,让你轻松实现监控可视化!快来了解一下吧!

    .*", zone="sh"} 上面例子给出的3条PromQL都叫即时查询(Instant Query),返回内容叫即时向量( Instant Vector)。...这就是为何建议把 --query.lookback-delta 调短 除了即时查询,PromQL还有范围查询(Range Query),返回内容叫 Range Vector。....*", zone="sh"}[1m] 范围查询就是多加个时间范围1min。即时查询每个指标返回一个点,范围查询会返回多个点。假设数据10秒钟采集一次,1分钟有6个点,都会返回。...,右侧的向量中只有一个记录,但是左侧的向量中有两个记录,所以高基数的一侧是左侧,故而使用 group_left。...4 总结 PromQL核心价值: 筛选 靠查询选择器,查询分为即时查询和范围查询 计算 有算术、比较、逻辑、聚合运算符,还有向量匹配逻辑 5 FAQ Prometheus 中提供了一个函数叫

    2.4K50

    Prometheus核心概念:一图了解瞬时向量Instant vector和区间向量Range vector的区别

    1 背景 我们在查询Prometheus的时候,通常有两种方式,一种是查瞬时的Metric采样数据,一种是查一段时间范围内的Metric采样数据。...如果对这两种查询方式理解不到位,结果往往是对PromQL的一些内置函数的使用是错误的,或者查询的结果并不是自己预期的那样。...那都是查Metric采样数据,查询瞬时和查询一段时间范围内这两种方式有什么区别呢?...// 这是错误的,因为count只能作用于瞬时向量,而这个查询本身返回的是区间向量 count(http_requests_total{job="prometheus"}[5m]) 5.2 PromQL...,区间向量 changes(v range-vector) 输入一个区间向量, 返回这个区间向量内每个样本数据值变化的次数(瞬时向量)。

    4.2K83

    深入理解 PromQL

    另一方面,这也导致很多人对 PromQL 并没有很深入的理解,无法掌握一些高级查询功能,遇到一些报错的时候不明所以。...Vectors Vector是什么 Vector直接翻译是向量的意思,PromQL 中的 Vector 也可以理解为向量。...& Range Vector 刚刚讲的 dimension 可以理解为 向量的方向,向量还有一个元素就是向量值,在 Prometheus中,向量值都是浮点型的数字。...在一个时刻有一个向量值的,就叫做 instant vector 在一个时刻,不仅包含当前时刻的值,还包含前向一段时间范围的 向量值(确切的说是时刻=>值的键值对)的,就叫做 range vector 对于...与之对比,在 selector 层面,range query selector 中的时间范围可以不加 resolution。

    2.1K10

    一文搞懂Prometheus、Grafana(含腾讯云上实战)

    ="GET"}2.范围查询直接通过类似于PromQL表达式http_requests_total查询时间序列时,返回值中只会包含该时间序列中的最新的一个样本值,这样的返回结果我们称之为瞬时向量。...区间向量表达式和瞬时向量表达式之间的差异在于在区间向量表达式中我们需要定义时间选择的范围,时间范围通过时间范围选择器[]进行定义。通过区间向量表达式查询到的结果我们称为区间向量。...除了使用m表示分钟以外,PromQL的时间范围选择器支持其它时间单位:s - 秒m - 分钟h - 小时d - 天w - 周y - 年3.时间位移操作在瞬时向量表达式或者区间向量表达式中,都是以当前时间为基准...(label)在并非唯一的情况下,通过PromQL查询数据,会返回多条满足这些特征维度的时间序列。...CPU的平均使用时间avg(node_cpu) by (mode)# count_values用于时间序列中每一个样本值出现的次数。

    52K3116

    PromQL进阶与运用

    向量选择器嵌套PromQL中的向量选择器用于选择指定标签的时间序列数据,并支持嵌套,例如:sum(rate(http_requests_total{job="frontend"}[5m])) by (instance...SQL中的向量选择器通常是通过嵌套查询实现的,例如:SELECT COUNT(*) FROM table WHERE column IN (SELECT column FROM table2)这个查询中...例如,以下PromQL查询返回当前可用内存的平均值:avg(node_memory_MemAvailable)该查询的结果是一个标量,表示平均可用内存。...例如,以下PromQL查询返回CPU使用率:cpu_usage{instance="webserver-01"}该查询的结果是一个向量,其中每个时间序列表示webserver-01实例的CPU使用率。...PromQL支持的聚合函数如下:sum (在指定维度上求和)max (在指定维度上求最大值)用于计算所有时间序列数据的最大值,并返回一个新的时间序列数据min (在指定维度上求最小值)avg (在指定维度上求平均值

    55910

    4.Prometheus监控入门之PromQL表达式语法学习

    6.偏移修改器 - (Offset) 描述: 该修饰符可以适用于任意类型的向量选择器,它可以让你获取查询执行时间,并在每个选择器的当前基础上将其回退到过去的这个时间上, 即可以改变时间为查询中的个别时刻和范围矢量偏移...10.API查询指标数据 描述: Prometheus 提供了许多HTTP API, 它们允许你输入PromQL语句,并返回数据使得可以用在仪表板工具或自定义报告脚本中。...Query 描述: 在给定的时间执行PromQL表达式并返回结果,注意其支持带入标签进行查询过滤的。...Tips : 将来自不同执行的所有瞬时向量组合成范围向量并返回。 例如: 查询前15分钟内请求prometheus的/metric次数。...resets() 函数 描述: resets(v range-vector) 的参数是一个区间向量(返回范围向量中的每个时间序列重置次数)。对于每个时间序列它都返回一个计数器重置的次数。

    8.6K12

    听GPT 讲Prometheus源代码--promqlpromdb

    vectors.go 定义向量的数据结构,用于存储采样点和处理查询结果。 constants.go 定义PromQL中常量类型和常数值。 exec.go 实现完整的PromQL查询语句的执行。...promql包实现了PromQL语言的完整执行链路:解析->语义检查->查询优化->执行->结果返回。它定义了PromQL的语法和执行模型,提供核心的PromQL查询功能。...execEvalStmt: 执行评估的语句。 subqueryTimes: 获取子查询的时间范围。 findMinMaxTime: 查找指定向量的最大和最小时间戳。...rangeEval: 范围查询的评估。 evalSubquery: 执行子查询。 eval: 评估查询语句。 vectorSelector: 向量选择器。...GetQueries:是一个方法,用于返回渲染中的查询列表。 GetAcceptedResponseTypes:是一个方法,用于返回查询中接受的响应类型列表。

    44710

    PromQL 使用基础

    也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样本值。而相应的这样的表达式称之为瞬时向量表达式。...区间向量(Range vector):一组时间序列,每个时间序列包含一段时间范围内的样本数据,这些是通过将时间选择器附加到方括号中的瞬时向量(例如[5m]5分钟)而生成的。...)附加到查询语句中,指定为每个返回的区间向量样本值中提取多长的时间范围。...但是现在如果我们在 Prometheus 的页面中查询上面的语句,然后切换到 Graph 选项卡的时候,则会出现如下所示的错误信息: ?.../querying/functions),不过对于区间向量来说最常用的函数并不多,使用最频繁的有如下几个函数: rate(): 计算整个时间范围内区间向量中时间序列的每秒平均增长率 irate(): 仅使用时间范围中的最后两个数据点来计算区间向量中时间序列的每秒平均增长率

    3.2K42

    普罗米修斯 -- PromQL 进阶

    作者 | 孙高飞 理解 instant 类型和 range 类型 在 PromQL 中我们可以使用很多的操作符和内置函数来计算我们的监控数据, 而这些操作符和内置函数在计算的 时候要求输入的参数是有类型要求的...在 PromQL 中计算的参数分为标量 (scalar) 和向量 (vector), 标量就是普通的值, 比如 1,2,3,4 这些值就是标量。 很好理解,不好理解的是向量类型的。 什么是向量呢?...而向量又分为 instant(瞬时向量)和 range(范围向量)类型。 他们的含义也就是字面上的意思,瞬时向量反应是某一个时刻的监控数据,上面那条数据就是一个即时向量。...之所以要搞清楚标量和向量(瞬时向量,范围向量)的定义是因为 PromQL 中的操作符和内置函数在使用 的时候对参数是有要求的。 有的要求是标量, 有的要求是瞬时向量有的要求是范围向量。...如果我们用 avg(process_cpu_seconds_total{}[5m]) by (kubernetes_io_hostname) 去把查询出的 5 分钟内的范围向量输入给 avg 函数的话,

    2.1K30

    通过 Prometheus 编写 TiDB 巡检脚本(脚本已开源,内附链接)

    PromQL 查询语言和日常使用的数据库 SQL 查询语言(SELECT * FROM ...)是不同的,PromQL 是一 种 嵌套的函数式语言 ,就是我们要把需 要查找的数据描述成一组嵌套的表达式,...每个表达式都会评估为一个中间值,每个中间值都会被用作它上层表达式中的参数,而查询的最外层表达式表示你可以在表格、图形中看到的最终返回值。...) ))然后还需要认识一下告警的 PromQL 中,经常出现的一些函数:rate用于计算变化率的最常见 函数是 rate() , rate() 函数用于计算在指定时间范围内计数器平均每秒的增加量。...要让巡检使用 PromQL ,就必须要修改告警中的 PromQL。...子查询的表示方式类似于区间向量的持续时间,但需要冒号后添加了一个额外的步长参数: [:]。

    25110
    领券