すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:etcdのメトリクスとダッシュボードを使用する

最終更新日:Nov 14, 2024

etcdは、Kubernetesクラスターのステータスとメタデータ情報を保存するために使用される永続的なストレージデバイスです。 分散キー値ストアとして、etcdはクラスターデータの強力な一貫性と高可用性を保証します。 このトピックでは、etcdのメトリックについて説明します。 このトピックでは、etcdのダッシュボードの使用方法と、一般的なメトリック異常のトラブルシューティング方法についても説明します。

使用上の注意

ダッシュボードアクセス

詳細については、「ACK Proクラスターでの制御プレーンコンポーネントダッシュボードの表示」をご参照ください。

メトリクス

メトリックは、コンポーネントのステータスおよびパラメータ設定を示すことができる。 次の表に、etcdでサポートされるメトリックを示します。

メトリック

タイプ

説明

cpu_utilization_core

ゲージ

使用されるCPU容量。 単位: コア。

etcd_server_has_leader

ゲージ

etcdサーバーにリーダーがあるかどうかを示します。 etcdは、Raftアルゴリズムを使用してデータの整合性を実装します。 Raftアルゴリズムは、etcdノードがリーダーとして選択され、他のetcdノードがフォロワーであることを保証します。 リーダーは、クラスターが安定していることを確認するために、定期的にすべてのメンバーにハートビートを送信します。

有効な値:

  • 1: etcdサーバーにリーダーがあります。

  • 0: etcdサーバーにリーダーがありません。

etcd_server_is_leader

ゲージ

etcdメンバーがリーダーかどうかを示します。 有効な値:

  • 1: etcdメンバーがリーダーです。

  • 0: etcdメンバーがリーダーではありません。

etcd_server_leader_changes_seen_total

Counter

リーダーの数は、特定の期間内に変化します。

etcd_mvcc_db_total_size_in_bytes

ゲージ

etcdメンバーデータベースの合計サイズ。

etcd_mvcc_db_total_size_in_use_in_bytes

ゲージ

etcdメンバーデータベースの使用法。

etcd_disk_backend_commit_duration_seconds_bucket

ヒストグラム

etcdバックエンドコミット遅延。これは、etcdがデータ変更をストレージバックエンドに書き込み、データをコミットするために使用する時間です。

バケット閾値は、{0.001、0.002、0.004、0.008、0.016、0.032、0.064、0.128、0.256、0.512、1.024、2.048、4.096、8.192} のセットとして定義される。

etcd_debugging_mvcc_keys_total

ゲージ

etcdに保存されているキーの総数。

etcd_server_proposals_committed_total

ゲージ

ラフトログにコミットされた提案の総数。 etcdは、Raftアルゴリズムを使用してデータの整合性を実装します。 Raftアルゴリズムは、システムステータスを提案として変更しようとするすべてのアクションをコミットします。

etcd_server_proposals_applied_total

ゲージ

適用されたRaft提案の総数。

etcd_server_proposals_pending

ゲージ

保留中のRaft提案の総数。

etcd_server_proposals_failed_total

Counter

失敗したRaft提案の総数。

memory_utilization_byte

ゲージ

メモリ使用量。 単位はバイトです。

説明

次のリソース使用率メトリックは非推奨です。 これらのメトリックに依存するアラートとモニタリングデータをできるだけ早く削除します。

  • cpu_utilization_ratio: CPU使用率。

  • memory_utilization_ratio: メモリ使用率。

ダッシュボードの使用状況ノート

ダッシュボードは、メトリクスとPrometheus Query Language (PromQL) に基づいて生成されます。 次のセクションでは、etcdのダッシュボードの可観測性と機能について説明します。

観察可能性

etcd

機能

ダッシュボード

PromQL

説明

etcd aliveステータス

  • etcd_server_has_leader

  • etcd_server_is_leader == 1

  • etcdメンバーがaliveかどうかを指定します。 3の値は、etcdメンバーが生きていることを示します。

  • etcdメンバーがリーダーかどうかを指定します。 通常の場合、etcdメンバーをリーダーとして選出する必要があります。

過去1日のメインカット数

変更 (etcd_server_leader_changes_seen_total{job="etcd"}[1d])

前日にリーダーの数が変わります。

メモリ使用量

memory_utilization_byte{container="etcd"}

メモリ使用量。 単位はバイトです。

CPU使用率

cpu_utilization_core{container="etcd"}* 1000

使用されるCPU容量。 単位: ミリコア。

ディスクサイズ

etcd_mvcc_db_total_size_in_bytes

etcdバックエンドデータベースのサイズ。

etcd_mvcc_db_total_size_in_use_in_bytes

etcdバックエンドデータベースの使用方法。

合計kv

etcd_debugging_mvcc_keys_total

etcdクラスター内のキーと値のペアの総数。

バックエンドコミット遅延

histogram_quantile(0.99, sum(rate(etcd_disk_backend_commit_duration_seconds_bucket{job="etcd"}[5m])) by (instance, le))

提案がetcdデータベースの永続的なストレージを完了するのに必要な時間であるバックエンドコミット遅延。

いかだの提案

レート (etcd_server_proposals_failed_total{job="etcd"}[1m])

1分あたりの失敗したRaft提案の数。

etcd_server_proposals_pending{job="etcd"}

保留中のRaft提案の総数。

etcd_server_proposals_committed_total{job="etcd"} - etcd_server_proposals_applied_total{job="etcd"}

コミットされたRaft提案の数と適用されたRaft提案の数の違い。

一般的なメトリック異常

kube-apiserverのメトリックが異常になった場合は、以下のセクションで説明するメトリックの異常が存在するかどうかを確認します。 次のセクションで説明されていないメトリック異常が発生した場合、チケットを起票します。

etcd aliveステータス

通常のケース

異常

異常な説明

etcdメンバーのヘルスステータスを照会すると、sum(etcd_server_has_leader)=3member etcd_server_is_leader == 1が表示されます。 これは、etcdメンバーの1人がリーダーであり、3人のetcdメンバー全員がリーダーが選出されたことを知っていることを意味します。

1つのetcdメンバーが異常です。

member etcd_server_has_leader!=1が表示されます。 この異常は、etcdクラスターが提供する外部サービスには影響しません。

複数のetcdメンバーが異常です。

member etcd_server_has_leader!=1は、複数のetcdメンバーに対して表示されます。 複数のetcdメンバーが異常です。 この場合、etcdクラスターは外部サービスを提供できません。

etcd_server_is_leader == 1が表示されているかどうかを確認します。 このフィールドが表示されない場合、etcdメンバーにはリーダーがなく、外部サービスを提供できません。

バックエンドコミット遅延

通常のケース

異常

異常な説明

メトリックは、数ミリ秒から数十ミリ秒の遅延を示す。

メトリックは、ある期間の間、数百ミリ秒またはさらには数秒の遅延を示す。

ディスクの読み取りと書き込みが異常です。

いかだの提案

通常のケース

異常

異常な説明

1分あたりの失敗したRaft提案の数は0です。

1分あたりの失敗したRaft提案の数は0より大きい。

いかだの提案はコミットされませんでした。 多数のRaft提案がコミットされなかった場合は、問題のトラブルシューティングを行います。

保留中のRaft提案の数は0です。

保留中のRaft提案の数は0より大きい。

いかだの提案はゆっくりと適用されるため、いかだの提案は保留中です。 バックエンドコミット遅延メトリックを確認し、問題のトラブルシューティングを行います。

コミットされたRaft提案の数と適用されたRaft提案の数の差は0です。

コミットされたRaft提案の数と適用されたRaft提案の数の差は0より大きい。

etcdは多数のクライアント要求に圧倒されます。

差が5,000より大きい場合、etcdは後続のリクエストを拒否し、多すぎるリクエストメッセージを返します。 etcdは、すべての保留中の提案が処理された後にのみ新しい要求を受け入れます。

関連ドキュメント

メトリックの詳細、ダッシュボードの使用に関する注意事項、および他の制御プレーンコンポーネントの一般的なメトリック異常のトラブルシューティング方法に関する提案については、「kube-apiserverのメトリック」kube-schedulerのメトリックkube-controller-managercloud-controller-manager」をご参照ください。