PromQL语法
一、PromQL语法
PromQL(Prometheus Query Language)是 Prometheus 自己开发的表达式语言,语言表现力很丰富,内置函数也很多。使用它可以对时序数据进行筛选和聚合。
瞬时向量 (Instant vector)
区间向量 (Range vector)
标量数据 (Scalar)
字符串 (String)
apiserver_request_total
apiserver_request_total{job="kubernetes-apiserver",resource="pods"}
=:完全相等 !=: 不相等 =~: 正则表达式匹配 !~: 正则表达式不匹配
1.2.2、区间向量选择器
apiserver_request_total{job="kubernetes-apiserver",resource="pods"}[1m]
s:seconds m:minutes h:hours d:days w:weeks y:years
1.2.3、偏移向量选择器
apiserver_request_total{job="kubernetes-apiserver",resource="pods"} offset 10m
apiserver_request_total{job="kubernetes-apiserver",resource="pods"} [10m] offset 1w
1.2.4、聚合操作符
sum:求和 min:最小值 max:最大值 avg:平均值 stddev:标准差 stdvar:方差 count:元素个数 count_values:等于某值的元素个数 bottomk:最小的 k 个元素 topk:最大的 k 个元素 quantile:分位数
sum(container_memory_usage_bytes{instance=~"k8s-master1"})/1024/1024/1024
sum (rate (container_cpu_usage_seconds_total{instance=~"k8s-master1"}[1m])) / sum (machine_cpu_cores{ instance =~"k8s-master1"}) * 100
3)计算最近1m所有容器cpu使用率
1.2.5、函数
abs():绝对值 sqrt():平方根 exp():指数计算 ln():自然对数 ceil():向上取整 floor():向下取整 round():四舍五入取整 delta():计算区间向量里每一个时序第一个和最后一个的差值 sort():排序