Prometheus-常用函数
https://blog.51cto.com/u_10983441/5340278
sum和sum_over_time
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
sum
1. 是瞬时向量
2. 是 Prometheus 内置的聚合操作,多个时序的数据会合并为单个时序的数据。不同时序的数据会相加在一起
例子:
request_count{a=1} 1,1,1,1,1
request_count{a=2} 1,1,1,1,1
sum(request_count)
{} 2,2,2,2,2
sum(request_count) by (a)
{a=1} 1,1,1,1,1
{a=2} 1,1,1,1,1
====================================================
sum_over_time
1. 多个时序之间不会有合并的操作
2. 是单个时序中的一个区间内的度量值相加,sum_over_time 使用的是区间向量(range-vector)
例子:
request_count{a=1} 1,1,1,1,1
request_count{a=2} 1,1,1,1,1
sum_over_time(request_count[5s])
request_count{a=1} 5
request_count{a=2} 5
ceil() –四舍五入向上取整
floor()–四舍五入向下取整
1
2
3
ceil(v) 将 v 中所有元素的样本值向上四舍五入到最接近的整数
floor() 将 v 中所有元素的样本值向下四舍五入到最接近的整数
min_over_time 和 predict_linear
1
2
排序
1
2
3
4
5
6
7
sort() 升序
sort_desc() 降序
用法
sort_desc(sum by(path) (rate(demo_api_request_duration_seconds_count{job="demo"}[5m])))
在计算容器内存时未设置limit
1
2
3
4
5
6
7
8
(
sum(container_memory_working_set_bytes{container!="" , container!="POD"}) by (container, pod, node, namespace)
/
sum(container_spec_memory_limit_bytes{container!="" , container!="POD"}) by (container, pod, node, namespace)
)
> 0.85
and
sum(container_spec_memory_limit_bytes{container!="" , container!="POD"}) by (container, pod, node, namespace) > 0
计算k8s集群中容器的WSS内存使用率>85%
本文由作者按照
CC BY 4.0
进行授权