Prometheus查询语法
prom查询语法
数据
prometheus_http_requests_total{cluster=“eu1”, code=“404”, handler=“/static/*filepath”, instance=“192.168.0.103:9090”, job=“prometheus”, receive_cluster=“eu1”, receive_replica=“0”, tenant_id=“default-tenant”}
瞬时向量查询(支持运算)
正则匹配
prometheus_http_requests_total{code=~“40."}
取反正则匹配
prometheus_http_requests_total{code!~"40.”}
精确匹配
prometheus_http_requests_total{code=“400”}
取反匹配
prometheus_http_requests_total{code!=“400”}
四则运算(±*/)
up ±*/ 5
up ^ 3 三次方
标签完全相同情况下,两个值可以直接运算
process_virtual_memory_max_bytes + process_virtual_memory_bytes
若标签不完全相同,可以取其中1个值运算,如取均有的 instance标签运算
node_cpu_precent + on(instance) node_cpu_total
比较运算(> < >= <= !=)
返回大于100的值
prometheus_http_requests_total > 100
返回0/1 判断是否大于100
prometheus_http_requests_total > bool 100
聚合运算
-
count、sum、min、max、avg、topk(前k)、bottomk(后k),count_values(统计含有某个参数值的数量)
#格式
<聚合函数>([parameter,] <指标查询语句>) [without|by ( -
top3和bottomk3
topk(3, prometheus_http_requests_total)
bottomk(3, prometheus_http_requests_total)
统计含有gwm_uc标签所有值的数量
count_values(“gwm_uc”,gateway_requests_seconds_count) -
计算5分钟内增长率
rate平滑/irate瞬时
rate(go_memstats_gc_cpu_fraction[5m])
时间范围查询 (不支持运算)
十分钟范围查询,支持d,m,y,ms等时间单位
prometheus_http_requests_total[10m]
偏移量,十分钟前
prometheus_http_requests_total offset 10m
偏移量,十分钟前,5分钟范围
prometheus_http_requests_total[5m] offset 10m
每间隔1分钟显示1个点
prometheus_http_requests_total[5m:1m]
子查询
avg_over_time() #指定间隔内所有点的平均值。
min_over_time() #指定间隔中所有点的最小值。
max_over_time() #指定间隔内所有点的最大值。
sum_over_time() #指定时间间隔内所有值的总和。
#查询一天空闲空间的平均值
avg_over_time(node_filesystem_files_free[1d])
max_over_time(rate(http_requests_total[5m])[1h:1m])
逻辑运算(与/或/非)
and、or、unless