gpt4 book ai didi

prometheus - 如何在 Prometheus 查询中组合单独的时间序列标签?

转载 作者:行者123 更新时间:2023-12-03 12:25:52 24 4
gpt4 key购买 nike

我有以下时间序列条目。

ifDescr{ifDescr="GigabitEthernet1/1",ifIndex="1",instance="x.x.x.x",job="snmp"} 1
ifDescr{ifDescr="GigabitEthernet1/2",ifIndex="2",instance="x.x.x.x",job="snmp"} 1
ifDescr{ifDescr="GigabitEthernet5/3",ifIndex="3",instance="x.x.x.x",job="snmp"}
ifHCInOctets{ifIndex="1",instance="x.x.x.x",job="snmp"}
ifHCInOctets{ifIndex="2",instance="x.x.x.x",job="snmp"}
ifHCInOctets{ifIndex="2",instance="x.x.x.x",job="snmp"}

照原样,我无法判断哪个索引与哪个描述匹配,这让事情变得困惑。

有没有办法基本上使用 ifIndex 连接上述标签与 ifDesc 标签相关联?或者该工作可用于将两个时间序列联系在一起?

我看过 group_left功能,但一直无法弄清楚如何让它工作来组合/聚合标签。

最佳答案

在这种情况下,您需要类似 rate(ifHCInOctets[5m]) * ignoring(ifDescr) group_left(ifDescr) ifDescr 的内容。

解释:

Prometheus 只会让您对系列之间的操作使用分组。 ifDescr的值始终为“1”,因此乘法是安全的。
ignoring条款意味着不要使用 ifDescr用于匹配的标签(因为它仅在系列之一上)。 ifIndex , instancejob将会被使用。
group_left正在指定您想要的系列标签 ifDescr .在这种情况下,它们具有相同的名称。

<vector expr> <bin-op> ignoring(<label list>) group_left(<label list>) <vector expr>

引用:
https://prometheus.io/docs/prometheus/latest/querying/operators/#many-to-one-and-one-to-many-vector-matches

关于prometheus - 如何在 Prometheus 查询中组合单独的时间序列标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50338703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com