Grafana ダッシュボードの 1 つで、検査した時間枠 (過去 12 時間) にダウンタイムがあったインスタンスのすべてのメトリックを表示したいと考えています。ただし、ダウンタイムなしで他のすべてを除外します。
私はプロメテウス ブラックボックス エクスポーターによって提供されたデータを使用しています。私が見ている時間枠 (例: 12h) 中に 100% 利用できないすべてのインスタンスの avg_over_time を取得したいと考えています。
私の基本クエリは次のようになります。
avg_over_time(probe_success{job="blackbox"}[15m])
期待どおりに動作していないものをすべて除外するために、sth を試しました。このように(読みやすいようにしようとしました):
_base_qery_ unless on(instance) _base_qery_ < 0.95
ただし、これには、 内に表示されないインスタンスラベルを持つシリーズも含まれます_base_qery_ < 0.95
。
公式ドキュメントから、このタイプのフィルタリングを期待していました
vector2 の結果が vector1 の要素で構成されたベクトルになり、その要素が vector2 に正確に一致するラベル セットを持つ要素がない場合を除き、vector1。両方のベクトルで一致するすべての要素が削除されます。
当面の私の回避策は次のクエリです (ここで、12h は Grafana で観察した全時間範囲です):
avg_over_time(probe_success{job="blackbox"}[15m]) and avg_over_time(probe_success{job="blackbox"}[12h]) < 1
しかし、15 分の範囲のバージョンを機能させたいと思っています。