たとえば、インターフェイスの送信速度 (私の場合) とすべてのブリッジ インターフェイスの送信速度の合計との差を取得したいnode_network_transmit_bytes_total
から、ネットワーク送信メトリックを取得します。nodeexporter
enp3s0
私はこのようなものを持っています:
irate(node_network_transmit_bytes_total{device="enp3s0"}[1m]) - irate(node_network_transmit_bytes_total{device=~"br.*"}[1m])
しかし、これは私にデータポイントを与えません。
編集
Prometheus/PromQL が 2 つのゲージ メトリックを減算することを試してみましたが、右側に複数のシリーズがあるため、私のケースは少し異なります。
したがって、この:
node_network_transmit_bytes_total{device="enp3s0"} - ignoring(device) node_network_transmit_bytes_total{device=~"br.*"}
収量:
クエリの実行中にエラーが発生しました: 操作の右側で一致グループ {instance="192.168.XZ:9100", job="nodeexporter"} の重複シリーズが見つかりました: [{ name ="node_network_transmit_bytes_total", device="br -XXXX"、インスタンス="192.168.XZ:9100"、ジョブ="nodeexporter"}、{名前="node_network_transmit_bytes_total"、デバイス="br-5d6dce95c2b0"、インスタンス="192.168.XZ:9100"、ジョブ="nodeexporter" "}];多対多の一致は許可されていません: 一致するラベルは片側で一意である必要があります
私は使用してみましたsum()
:
node_network_transmit_bytes_total{device="enp3s0"} - ignoring(device) sum(node_network_transmit_bytes_total{device=~"br.*"})
しかし、それは再び結果をもたらしません。
EDIT2
私は違いを得る方法を理解することができました
sum(node_network_transmit_bytes_total{device="enp3s0"}) by (instance) - sum (node_network_transmit_bytes_total{device=~"br.*"}) by (instance)
しかし、私はそれを使用できませんirate
:
irate(sum(node_network_transmit_bytes_total{device="enp3s0"}) by (instance) - sum (node_network_transmit_bytes_total{device=~"br.*"}) by (instance))[5m]
クエリの実行中にエラーが発生しました: 1:149: 解析エラー: 範囲はベクトル セレクターにのみ許可されています