web-dev-qa-db-ja.com

プロメテウスの結果を、ラベル値ではなく、メトリック値でフィルタリングします

Prometheus topkは予想より多くの結果を返す であり、 https://github.com/prometheus/prometheus/issues/586 はまだ実行されていないクライアント側の処理を必要とするため https://github.com/grafana/grafana/issues/7664 で利用できるようになったため、同様の問題に対して別の短期的な回避策を追求しようとしています。

私の特定のケースでは、ほとんどの場合、グラフ化したいメトリック値のほとんどはゼロになります。それらが0を超えている場合にのみ興味深いものになります。

labelの値に基づいてデータポイントをフィルタリングするプロメテウスクエリを作成する方法を見つけることができますが、まだ方法を見つけることができませんでしたmetricの値が特定の条件を満たす場合にのみ、時系列データポイントを返すようにプロメテウスに指示します。私の場合、ゼロより大きい値でフィルタリングしたいです。

メトリック値に基づいてデータポイントをフィルタリングする条件をプロメテウスクエリに追加できますか?もしそうなら、それを行うための構文の例をどこで見つけることができますか?

8
Steve Dwire

フィルタリングは 比較演算子 で行われます。たとえば、x > 0

8
brian-brazil

brian's answer で混乱している場合:比較演算子によるフィルタリングの結果はブール値ではなく、フィルタリングされたシリーズです。例えば。

min(flink_rocksdb_actual_delayed_write_rate > 0)

0を超える最小値が表示されます。

実際にブール値(または0または1)が必要な場合は、次のようなものを使用します

sum (flink_rocksdb_actual_delayed_write_rate >bool 0)

これにより、ゼロ以外のカウントが得られます。

1
Caesar