prometheus函数常用

时数据 (Instant vector): 包含一组时序,每个时序只有一个点,例如:http_requests_total
区间数据 (Range vector): 包含一组时序,每个时序有多个点,例如:http_requests_total[5m]
纯量数据 (Scalar): 纯量只有一个数字,没有时序,例如:count(http_requests_total)

Element Value
{} 5
scalar NaN



prometheus函数常用

increase(range-vector)函数
应用场景:取指标的一段时间的增量,获取范围中的第一个和最后一个样本返回其增长量,适合counter类型指标
由于这个值被外推到指定的整个时间范围,所以即使样本值都是整数,你仍然可能会得到一个非整数值。
increase(login[1h]) 登录次数一小时以内的增量
increase(login{status="false"}[1h]) 登录错误一小时以内的增量

rate(range-vector)函数(聚合的时候需要先执行)
应用场景:取指标在一段时间内平均每秒的增量 专门为counter类型指标
rate(login[1h]) 获取一小时登录次数每秒的增量
rate(login{status="false"}[1h]) 获取一小时登录错误次数平均每秒的增量


irate(range-vector)函数 每秒即时的增长率。
irate(login[5m]) 里面的时间配不配问题不大
过去 5 分钟内最后两个样本数据的 HTTP 请求数的增长率:
irate(http_requests_total{job="api-server"}[5m])

sum(range-vector)函数 指标的总数
sum(login[1m]) 登录次数的总数量

topk(range-vector)函数 从数据中取数值排行前N的数值,N可以自定义
topk(1,login[1m]) 1分钟内,登录失败或者成功中的排行第一值

count(range-vector)函数 元素的个数 不同labelname就是不同的元素
有100台服务器在监控,想实现当CPU使用率大于80%的机器达到N台就进行报警就可以使用它
count(loginfc_bucket[1h] > 3) bucket中的数值大于3的bucket总数


delta(range-vector)函数: 仅用于仪表。现在时间的数值和1m之前的数值的差值,就是现值-前值
delta(loginall[1m])
delta(cpu_temp_celsius{host="zeus"}[2h]) cpu现在的温度和2小时之前CPU温度的差异
delta(loginall[5h]) 现在样本值和5小时前的对比
delta(loginall[24h]) 一般我们都是和前一天的数据做对比,
delta(loginall[7d]) 或者是一个以星期为周期
ceil(delta(loginall[70m]))

idelta(range-vector)函数: 它计算最新的 2 个样本值之间的差值。
一般只用在 Gauge 类型的时间序列上。
idelta(loginall[1m]) 1m分钟最后的两个样本值的差值,后减前

deriv(range-vector) 计算范围内样各个时间序列的二阶导数,
deriv(loginall[1h]) 需要指定时间范围

changes(range-vector)函数:在一段时间内每个样本数据值变化的次数
changes(login{status="false"}[1m])



predict_linear(range-vector)函数:计算变化速率的曲线,预测未来数值,用当前多少时间的数据去预测未来什么时候的数据
predict_linear(login[10m],4*3600) 根据十分钟的曲线值去预测4小时候的数据
predict_linear(increase(login[10m])[10m],4*3600)
基于 2 小时的样本数据,来预测主机可用磁盘空间的是否在 4 个小时候被占满:
predict_linear(node_filesystem_free{job="node"}[2h], 4 * 3600) < 0

abs(instant-vector) 所有样本都返回绝对值
abs(loginall) 即使是负数,返回的也是正数;目测没什么比较好用的场景
loginall 本来是-2。 abs(loginall)就是2

absent(instant-vector) 如果传入的向量具有任何元素或者数值,则返回空向量,
如果传递给他的向量没有元素或数值,则返回值为1

ceil(instant-vector) 将样本值舍入到最接近的整数没,向上舍
ceil(loginall/3) loginall本来是-2。,现在加入函数后为0

floor(instant-vector) 将样本值舍入位最接近的整数 向下舍
floor(loginall/3) loginall本来是-2 ,现在加入函数后为-1

round(instant-vector) 将样本值舍入最接近的整数,四舍五入
round(loginall/7) loginall本来的值为-4 现在结果为-1
round(loginall/8) loginall本来的值为-4 现在结果为0
round(loginall/9) loginall本来的值为-4 现在结果为0

clamp_max(instant-vector,scalar) 设置样本值的最大值进行钳制,如果超过最大值按照最大值修改样本值,否则不变
clamp_max(loginall,10)

clamp_min(instant-vector,scalar) 输入一个瞬时值,如果样本值低于设置的
clamp_min(loginall,0) 0 为设置的最小值

day_of_month() 月中的某天 1-31
day_of_week() 星期几,0-6 0代表星期日
days_in_month() 给定时间的月中总天数
hour() 给定时间的一天的小时 0-23
minute() 当前小时的第几分钟,0-59
month() 返回当前属于第几个月 0-12
year() 返回当前的年份

exp(instant-vector): 计算元素的指数函数
exp(loginall)

resets(range-vector)是(v) 参数是区间向量,对于每个时间序列,返回计数器重置的次数,
重置:两个连续样本之间的值的减少被认为是一次计数器重置
一般用于计数器。
resets(login[30d]). 20 天内login计数器被重置的次数

scalar(instant-vector)如果度量指标的样本数量大于1或者等于0 则返回NAN
scalar(login) login 等于32 和28 ,所以返回NAN
scalar(loginall) loginall 是-4 所以返回负值

sort(instant-vector) 对向量进行生序排序
sort(login) 从小到大排序

sort_desc(instant-vector) 对向量进行降序排序
sort_desc(login)

sqrt(instant-vector) 计算元素的平方跟
sqrt(login)

time() 放回从1970-01-01 到现在的秒数: 不是返回当前时间,返回时间戳
time(): 1595904572.521

timestamp(): 返回向量v中的样本的时间戳:
timestamp(loginall)

avg_over_time(range-vector) : 区间向量内每个度量指标的平均值。
avg_over_time(loginall[5m])

min_over_time(range-vector) : 区间向量内每个度量指标的最小值。
min_over_time(loginall[5m])

max_over_time(range-vector) : 区间向量内每个度量指标的最大值。
max_over_time(loginall[2h])

sum_over_time(range-vector) : 区间向量内每个度量指标的求和。
sum_over_time(loginall[2h])

count_over_time(range-vector) : 区间向量内每个度量指标的样本数据个数。
count_over_time(loginall[2h])

quantile_over_time(scalar, range-vector) : 区间向量内每个度量指标的样本数据值分位数,φ-quantile (0 ≤ φ ≤ 1)。
stddev_over_time(range-vector) : 区间向量内每个度量指标的总体标准差。
stdvar_over_time(range-vector) : 区间向量内每个度量指标的总体标准方差。

label_join(v instant-vector, dst_label string, separator string, src_label_1 string, src_label_2 string, ...)
将时间序列 v 中多个标签 src_label 的值,通过 separator 作为连接符写入到一个新的标签 dst_label 中。可以有多个 src_label 标签
label_join(login,"name",",","hll_env","hll_appid")
login{hll_appid="ci-better-demo-svc",hll_env="stg",hll_ip="192.168.107.195",instance="192.168.107.195:16971",job="java_metric",
name="stg,ci-better-demo-svc",status="true"}

promethues常用的函数的更多相关文章

  1. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  2. php常用字符串函数小结

    php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度 ...

  3. php常用数组函数回顾一

    数组对于程序开发来说是一个必不可少的工具,我根据网上的常用数组函数,结合个人的使用情况,进行数组系列的总结复习.里面当然不只是数组的基本用法,还有相似函数的不同用法的简单实例,力求用最简单的实例,记住 ...

  4. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  5. WordPress主题模板层次和常用模板函数

    首页: home.php index.php 文章页: single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos. ...

  6. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  7. MySQL之MySQL常用的函数方法

    MySQL常用函数 本篇主要总结了一些在使用MySQL数据库中常用的函数,本篇大部分都是以实例作为讲解,如果有什么建议或者意见欢迎前来打扰. limit Select * from table ord ...

  8. Delphi常用系统函数总结

    Delphi常用系统函数总结 字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S : ...

  9. iOS开发数据库篇—SQLite常用的函数

    iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename,   // 数据库的文件路径 sqlite3 * ...

随机推荐

  1. Clickhouse 分布式表&本地表 &ClickHouse实现时序数据管理和挖掘

    一.CK 分布式表和本地表 (1)CK是一个纯列式存储的数据库,一个列就是硬盘上的一个或多个文件(多个分区有多个文件),关于列式存储这里就不展开了,总之列存对于分析来讲好处更大,因为每个列单独存储,所 ...

  2. .NET NuGet整理

    分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的K ...

  3. 小白学python第1问: int 占几个字节?

    windows 64位机器,python3.7:后面的文章中,没有特别说明的话,都是在该环境下运行 int 占几个字节? C语言中(GCC编译器),int 占据4个字节,python呢? 我们用pyt ...

  4. OJ教程--DevC++快捷键

    一些常用的快捷键如下: 1.F9编译 2.F10运行 3.F11编译+运行 4.Ctrl + Home键 跳转到当前文本的开头处. 5.Ctrl + End键 跳转到当前文本的末尾处. 6.Ctrl ...

  5. Navicat15激活(仅供学习使用,严禁任何商业用途)

    Navicat15利用注册机破解的方法 需求 Navicat15下载及安装 也可以联系作者获取Navicat15及工具,仅供学习使用,严禁各种用于商业活动 1.打开搜索引擎,查找Navicat15,然 ...

  6. QUIC协议详解

    声明 本文可以自由转载但需注明原始链接.本文为本人原创,作者LightningStar,原文发表在博客园.本文主体内容参考论文[1]完成. 介绍 QUIC,发音同quick,是"Quick ...

  7. 【面经】Java面试突击

    基础语法 基本数据结构 Java 的基本数据类型有 8 种,包括 6 种数字类型.1 种字符类型和 1 种布尔类型. 基本数据类型总览 数字类型包括 4 种整数类型和 2 种浮点数类型,4 种整数类型 ...

  8. CSAPP-Lab04 Architecture Lab 深入解析

    穷且益坚,不坠青云之志. 实验概览 Arch Lab 实验分为三部分.在 A 部分中,需要我们写一些简单的Y86-64程序,从而熟悉Y86-64工具的使用:在 B 部分中,我们要用一个新的指令来扩展S ...

  9. CentOS Linux服务器安装Nginx

    1.安装nginx前,我们首先要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载 ...

  10. vue3 区别于 vue2 的“与众不同”

    希望本篇文章能帮你加深对 Vue 的理解,能信誓旦旦地说自己熟练Vue2/3.除此之外,也希望路过的朋友可以帮助我查漏补缺.   区别 生命周期的变化 整体来看,变化不大,只是名字大部分需要 + on ...