总结:Prometheus之PromQL语法

一、介绍

PromQL(Prometheus Query language)即 Prometheus查询语言的简称,它是 Prometheus 内置的查询语言,Prometheus 作为强大的开源监控系统,它最大的依赖便是PromQL,它是监控数据个性化查询、展示的基础,所以要掌握Prometheus,掌握PromQL是必备的前提。

二、数据类型

1、介绍

PromQL 表达式计算出来的值有以下几种类型:

瞬时向量 (Instant vector): 一组时序,每个时序只有一个采样值
区间向量 (Range vector): 一组时序,每个时序包含一段时间内的多个采样值
标量数据 (Scalar): 一个浮点数
字符串 (String): 一个字符串,暂时未用

2、瞬时向量

普通非[]查询都是瞬时向量,即某个点的值

3、区间向量

以通过在瞬时向量选择器后面添加包含在 [] 里的时长来得到区间向量选择器。

# 这个不支持Graph,需要选择Console,才会看到采集的数据
apiserver_request_total{job="kubernetes-apiserver",resource="pods"}[1m]

三、PromQL之匹配模式

总结:Prometheus匹配模式_小魏的博客的博客-CSDN博客_prometheus 正则匹配

四、内置函数

总结:Prometheus内置函数_小魏的博客的博客-CSDN博客_prometheus sort

五、常用指标

总结:Prometheus常用指标_小魏的博客的博客-CSDN博客

六、Prometheus之PromQL-操作符

总结:Prometheus之PromQL操作符

十、by的用法

类似于mysql的group by,即按照某个条件聚合


 

# 按照mode计算主机CPU的平均使用时间
avg(node_cpu) by (mode)

# 按照主机查询各个主机的CPU使用率
sum(sum(irate(node_cpu{mode!='idle'}[5m]))  / sum(irate(node_cpu[5m]))) by (instance)

十一、案例一

1、语句如下

sum by (label_qke_cloud_qiyi_domain_app_id, label_qke_cloud_qiyi_domain_app_name) (rate(http_server_requests_seconds_count{}[5m]) * on (pod) group_left(label_qke_cloud_qiyi_domain_app_id, label_qke_cloud_qiyi_domain_app_name) kube_pod_labels{label_qke_cloud_qiyi_domain_app_name=\"hubble-biz-log\"})

2、函数与关键词介绍

group_left :

sum by :按照条件求和

on :条件

rate:前后相减

* : 即乘法,为什么要用乘法呢?目的是想让前面的rate结果不变,因为右边的结果是始终1,改成使用 /(除法)也是可以的,效果一致

3、语句拆分分析

3.1、rate(http_server_requests_seconds_count{}[5m]):查最近5分钟所有pod,所有请求的QPS,如下图:

另外由于是5分钟区间,所以一个请求如果step是60秒的话,应该有差不多5条左右的数据,以某一条为例:

rate(http_server_requests_seconds_count{exception="None", uri="/api/open/wo/getWorkorderLog"}[5m])

3.2、

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值