私の目標は、サーバー上および実行中のドッカー コンテナー上で Prometheus を使用してメトリック (CPU、メモリ使用量など) を観察することです。アラームを送信する前に、これらのメトリックの特定の値を、たとえば 0.95 分位数と比較したいと思います。しかし、インターネットでの数週間の検索で、特定の分位数の指標を作成するのにまだ苦労しています. したがって、このスレッドで、特定の指標の分位点を作成する方法について、あなたの助け/アドバイスを求めます。
バックグラウンド
コード ベースは、docpromリポジトリのフォークです。このコードは、監視を Prometheus に依存しています。cAdvisor
Prometheus は、実行中のコンテナーからデータを取得します。cAdvisor for Prometheus で提供されているメトリクスは、次のページで確認できます。ただし、Gauge
およびCounter
メトリック タイプのみが提供されます。調査中に、提供されたメトリックの変更/拡張を可能にするパラメーターを見つけることができませんでした。
問題
私の現在の理解によれば、分位点を観察するには、指標タイプをHistogram
orにする必要があります。cAdvisor が提供するメトリクスでクエリSummary
を使用する最善の方法は何ですか?histogram_quantile
私の現在の考えは、
- カスタムサーバーを作成する
- Prometheus から目的のデータを取得する
- 目的のデータを計算する
- Prometheus がスクレイピングできるように、サーバーからメトリックとして提供します。
histogram_quantile
カスタム指標で実行する
分位数で使用できるメトリックを作成するための正しいアプローチですか?
たとえば、特定のコンテナの CPU 使用率が 0.95 分位を超えた場合にアラームを発生させたいと考えています。CPU 使用率のコードを以下に示します。
sum(rate(container_cpu_usage_seconds_total{name="CONTAINER_NAME"}[10m]))) / count(node_cpu_seconds_total{mode="system"}) * 100
目的の分位数を作成するための最良のアプローチは何ですか? 私は正しい道を進んでいますか、それともここで簡単なものが欠けていますか? 分位数を使用して単純なクエリを取得するのは、私には難しすぎるように見えるからです。
すべての助けと情報に感謝します。