web-dev-qa-db-ja.com

コンテナが再起動したことをどのように警告できますか?

PrometheusとcAdvisorを使用してコンテナーを監視し、コンテナーの再起動時にアラートが表示されるようにしたいと思います。誰もがこのためのプロメテウス警告のサンプルを持っているのだろうか。

13
qingsong

次のPrometheusアラートルールを使用して、1時間以内にコンテナの再起動を検出しました(最大時間に変更できます)。

Prometheusアラートルールのサンプル

ALERT ContainerRestart/PodRestart
IF rate(kube_pod_container_status_restarts[1h]) * 3600 > 1
FOR 5s
LABELS {action_required = "true", severity="critical/warning/info"}
ANNOTATIONS {DESCRIPTION="Pod {{$labels.namespace}}/{{$labels.pod}} restarting more than once during last one hours.",
SUMMARY="Container {{ $labels.container }} in Pod {{$labels.namespace}}/{{$labels.pod}} restarting more than once times during last one hours."}

rate()

rate(v range-vector)は、範囲ベクトルの時系列の1秒あたりの平均増加率を計算します。単調性の中断(ターゲットの再起動によるカウンターのリセットなど)は自動的に調整されます。また、計算は時間範囲の終わりまで推定し、スクレイプの欠落や、スクレイプサイクルと範囲の期間の不完全な調整を可能にします。次の例の式は、範囲ベクトルの時系列ごとに、過去5分間に測定されたHTTPリクエストの1秒あたりのレートを返します。

rate(http_requests_total{job="api-server"}[5m])

率はカウンタでのみ使用する必要があります。アラートや、動きの遅いカウンターのグラフ化に最適です。

Rate()を集計演算子(sum()など)または時間をかけて集計する関数(_over_timeで終わる関数)と組み合わせる場合は、常に最初にrate()を取得してから集計することに注意してください。そうしないと、ターゲットの再起動時に、rate()はカウンターのリセットを検出できません。

kube_pod_container_status_restarts_total

メトリックタイプ:カウンター

ラベル/タグ:container = container-name、namespace = pod-namespace、pod = pod-name

説明:ポッドあたりのコンテナ再起動の数

Kubernetesで実行している場合は、kube-state-metricsポッドの再起動メトリックを公開するコンテナ: https://github.com/kubernetes/kube-state-metrics

4
checketts