计算最小、最大和平均丢包率
Calculate min, max and average packet loss
我已将以下形式的指标发送给普罗米修斯:
interface_stats{type="rx_dropped", device="eth0", host="host0.my.net"} 5
interface_stats{type="rx_packets", device="eth0", host="host0.my.net"} 1000
interface_stats{type="rx_dropped", device="eth0", host="host1.my.net"} 3
interface_stats{type="rx_packets", device="eth0", host="host1.my.net"} 2000
interface_stats{type="rx_dropped", device="eth0", host="host2.my.net"} 9
interface_stats{type="rx_packets", device="eth0", host="host2.my.net"} 1000
.
.
.
interface_stats{type="rx_dropped", device="eth0", host="host325.my.net"} 12
interface_stats{type="rx_packets", device="eth0", host="host235.my.net"} 1000
我想计算并显示所有主机的 eth0 随时间变化的最小、最大和平均丢包率。所有值都是计数器。
这可能吗?
如果 interface_stats
是 [=26],则以下 PromQL 查询 returns 每个 (device, host)
在过去 5 分钟内丢失数据包(参见方括号中的 5m
) =]:
rate(interface_stats{type="rx_dropped"}[5m])
/ ignoring(type)
rate(interface_stats{type="rx_packets"}[5m])
您可以将 5m
增加到 1h
或任何其他 supported time duration 以获得给定持续时间内的数据包丢失。
如果你需要获取特定device
and/or host
的丢包,那么只需将相应的过滤器添加到花括号中即可。例如,以下查询 returns 每个 host
仅 device="eth0"
的数据包丢失:
rate(interface_stats{type="rx_dropped",device="eth0"}[5m])
/ ignoring(type)
rate(interface_stats{type="rx_packets",device="eth0"}[5m])
如果您需要获取主机间的平均、最大或最小丢包率,只需将上面的查询包装成 avg()
、max()
或 min()
aggregate functions .例如,以下查询 returns 过去 5 分钟内 device="eth0"
所有主机的平均丢包率:
avg(
rate(interface_stats{type="rx_dropped",device="eth0"}[5m])
/ ignoring(type)
rate(interface_stats{type="rx_packets",device="eth0"}[5m])
)
我已将以下形式的指标发送给普罗米修斯:
interface_stats{type="rx_dropped", device="eth0", host="host0.my.net"} 5
interface_stats{type="rx_packets", device="eth0", host="host0.my.net"} 1000
interface_stats{type="rx_dropped", device="eth0", host="host1.my.net"} 3
interface_stats{type="rx_packets", device="eth0", host="host1.my.net"} 2000
interface_stats{type="rx_dropped", device="eth0", host="host2.my.net"} 9
interface_stats{type="rx_packets", device="eth0", host="host2.my.net"} 1000
.
.
.
interface_stats{type="rx_dropped", device="eth0", host="host325.my.net"} 12
interface_stats{type="rx_packets", device="eth0", host="host235.my.net"} 1000
我想计算并显示所有主机的 eth0 随时间变化的最小、最大和平均丢包率。所有值都是计数器。
这可能吗?
如果 interface_stats
是 [=26],则以下 PromQL 查询 returns 每个 (device, host)
在过去 5 分钟内丢失数据包(参见方括号中的 5m
) =]:
rate(interface_stats{type="rx_dropped"}[5m])
/ ignoring(type)
rate(interface_stats{type="rx_packets"}[5m])
您可以将 5m
增加到 1h
或任何其他 supported time duration 以获得给定持续时间内的数据包丢失。
如果你需要获取特定device
and/or host
的丢包,那么只需将相应的过滤器添加到花括号中即可。例如,以下查询 returns 每个 host
仅 device="eth0"
的数据包丢失:
rate(interface_stats{type="rx_dropped",device="eth0"}[5m])
/ ignoring(type)
rate(interface_stats{type="rx_packets",device="eth0"}[5m])
如果您需要获取主机间的平均、最大或最小丢包率,只需将上面的查询包装成 avg()
、max()
或 min()
aggregate functions .例如,以下查询 returns 过去 5 分钟内 device="eth0"
所有主机的平均丢包率:
avg(
rate(interface_stats{type="rx_dropped",device="eth0"}[5m])
/ ignoring(type)
rate(interface_stats{type="rx_packets",device="eth0"}[5m])
)