Prometheus关于with和by的作用及用法
# 1,简单解释
by:
向量中只保留列出的标签(维度),其余标签则移除,必须指明标签列表。without:
用于从计算结果中移除列举的标签(维度),而保留其它标签。
通常如上两个函数都配合sum()
函数一同出现,by用于聚合我们关心的列,而without则可以直接理解为by的相反用法。
# 2,简单示例
首先有一个基础字段查询:
prometheus_http_requests_total
1
这里随便拿出一条结果来做参照:
prometheus_http_requests_total{code="200",endpoint="http",handler="/-/reload",instance="172.26.10.182:8080",job="prometheus",namespace="monitoring",pod="prometheus-1",roles="monitor"} 15467
1
通常我们结合sum来得出每个instance的value:
sum(prometheus_http_requests_total) by (instance)
1
此处可以看到使用sum函数之后可通过by方法获取到我们关心的字段。
那么without的用法如上边相反,比如有一个roles的字段我们用不到,可以使用如下方法:
sum(prometheus_http_requests_total) without (roles)
1
能够看到对应的roles字段没有了。without方法多用在表格的绘制中,让我们能够灵活地控制字段的取舍。
更新时间: 2023/7/27 18:48:21