4

私の目標は、サーバー上および実行中のドッカー コンテナー上で Prometheus を使用してメトリック (CPU、メモリ使用量など) を観察することです。アラームを送信する前に、これらのメトリックの特定の値を、たとえば 0.95 分位数と比較したいと思います。しかし、インターネットでの数週間の検索で、特定の分位数の指標を作成するのにまだ苦労しています. したがって、このスレッドで、特定の指標の分位点を作成する方法について、あなたの助け/アドバイスを求めます。

バックグラウンド

コード ベースは、docpromリポジトリのフォークです。このコードは、監視を Prometheus に依存しています。cAdvisorPrometheus は、実行中のコンテナーからデータを取得します。cAdvisor for Prometheus で提供されているメトリクスは、次のページで確認できます。ただし、GaugeおよびCounterメトリック タイプのみが提供されます。調査中に、提供されたメトリックの変更/拡張を可能にするパラメーターを見つけることができませんでした。

問題

私の現在の理解によれば、分位点を観察するには、指標タイプをHistogramorにする必要があります。cAdvisor が提供するメトリクスでクエリSummaryを使用する最善の方法は何ですか?histogram_quantile

私の現在の考えは、

  1. カスタムサーバーを作成する
  2. Prometheus から目的のデータを取得する
  3. 目的のデータを計算する
  4. Prometheus がスクレイピングできるように、サーバーからメトリックとして提供します。
  5. 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

目的の分位数を作成するための最良のアプローチは何ですか? 私は正しい道を進んでいますか、それともここで簡単なものが欠けていますか? 分位数を使用して単純なクエリを取得するのは、私には難しすぎるように見えるからです。

すべての助けと情報に感謝します。

4

0 に答える 0