ネットワーク使用量が多すぎる?

Prometheus 2.7 の新しいサブクエリ機能は、一つのクエリでその可能性があります。

直近1時間のデータ受信量が、5分間の平均で1Mb/sを超えていた時間を知りたいでしょう。

bits/second で、5分間の平均使用量を取得する。

rate(node_network_receive_bytes_total[5m]) * 8

bool を使用して、値が大きいか小さいかに基づいて、0から1へ変更できます。

rate(node_network_receive_bytes_total[5m]) * 8 > bool 1000000

これまでは、記録ルールを作成するには次の行に進んでいました。
しかし、サブクエリはすることができます。

(rate(node_network_receive_bytes_total[5m]) * 8 > bool 1000000)[1h:]

1時間のRange Vector(範囲ベクトル)を取得するために計算できます。
通常は、「avg_over_time」を使用します。

avg_over_time((rate(node_network_receive_bytes_total[5m]) * 8 > bool 1000000)[1h:])

これは、アドホックに使用できます。

しかし、ルールで通常時に使用すると、サブクエリよりも記録ルールを使うほうが適切です。
サブクエリ結果の1時間の値を出すために、全間隔毎に再計算をすることを避けることができます。

Originalの意訳元:https://www.robustperception.io/how-much-of-the-time-is-my-network-usage-over-a-certain-amount