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 方法多用在表格的绘制中,让我们能够灵活地控制字段的取舍。
上次更新: 2024/11/19, 23:11:42