【问题标题】:How to avoid "vector cannot contain metrics with the same labelset" error when plotting rate() from several metrics (same labelset, different names)从多个指标(相同的标签集,不同的名称)绘制 rate() 时如何避免“向量不能包含具有相同标签集的指标”错误
【发布时间】:2021-10-26 20:06:48
【问题描述】:

在 Prometheus 中,有时我们需要像 PromQL 查询一样一次绘制多个指标(例如,具有名称、拟合相同的正则表达式):

{name=~"camel_proxy.*count"}

它工作正常,相同的标签集线用不同的名称绘制。

当我们想绘制它们的 rate() 时,我们会遇到标题中的错误:

rate({name=~"camel_proxy.*count"}[5m])

所以,这里的方法是让labelset不一样,把__name__移动到某个label,让每个labelset都是唯一的:

rate(label_replace({name=~"camel_proxy.*count"},"name_label","$1","name", "(.+)")[5m])

但我们仍然收到类似的错误

1:90: parse error: ranges only allowed for vector selectors"

如何避免它并正确绘制费率?

【问题讨论】:

  • 我发现我必须在 Ilya 在此处共享的查询中使用 __name__ 而不是 name - 既在开头的度量选择器中,也在 label_replace 函数中,如下所示:label_replace({__name__=~"camel_proxy.*count"},"name_label","$1","__name__", "(.+)")(我尝试通过编辑来更新问题本身,但 Stack Overflow 上的编辑队列已满????)

标签: prometheus grafana promql


【解决方案1】:

这里的 PromQL 查询应该是

rate(label_replace({name=~"camel_proxy.*count"},"name_label","$1","name", "(.+)")[5m:])

请注意 5m**:** 而不是 5m

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多