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

Container Service for Kubernetes:etcd コンポーネントのメトリックとダッシュボードガイド

最終更新日:Nov 09, 2025

Kubernetes クラスターは、etcd を永続ストレージデバイスとして使用し、クラスターの状態とメタデータを保存します。分散 Key-Value ストアとして、etcd はクラスターデータの強力な整合性と高可用性 (HA) を保証します。このトピックでは、etcd コンポーネントのメトリックについて説明し、ダッシュボードの使用方法を解説し、一般的なメトリックの異常分析を提供します。

始める前に

ダッシュボードへのアクセス

詳細については、「コントロールプレーンコンポーネントのモニタリングダッシュボードを表示する」をご参照ください。

メトリックチェックリスト

メトリックは、コンポーネントがそのステータスとパラメーターを公開する方法です。次の表に、etcd コンポーネントのメトリックをリストします。

メトリック

タイプ

説明

cpu_utilization_core

Gauge

CPU 使用率。単位: コア。

etcd_server_has_leader

Gauge

etcd は Raft コンセンサスアルゴリズムを使用します。Raft では、クラスター内の 1 つのメンバーがリーダー (プライマリノード) として選出され、他のメンバーはフォロワー (セカンダリノード) になります。リーダーは定期的にすべてのメンバーにハートビートを送信して、クラスターの安定性を維持します。

このメトリックは、etcd メンバーの中にリーダーが存在するかどうかを示します。

  • 1: リーダーが存在します。

  • 0: リーダーは存在しません。

etcd_server_is_leader

Gauge

etcd メンバーがリーダーであるかどうかを示します。

  • 1: はい。

  • 0: いいえ。

etcd_server_leader_changes_seen_total

Counter

一定期間に etcd メンバーのリーダーが変更された回数。

etcd_mvcc_db_total_size_in_bytes

Gauge

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

etcd_mvcc_db_total_size_in_use_in_bytes

Gauge

etcd メンバー DB の実際の使用サイズ。

etcd_disk_backend_commit_duration_seconds_bucket

Histogram

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

Gauge

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

etcd_server_proposals_committed_total

Gauge

etcd は Raft コンセンサスアルゴリズムを使用します。Raft では、システムの状態を変更しようとするすべてのアクションはプロポーザルとして送信されます。

このメトリックは、etcd の Raft ログに正常にコミットされたプロポーザルの数を示します。

etcd_server_proposals_applied_total

Gauge

正常に適用または実行されたプロポーザルの数。

etcd_server_proposals_pending

Gauge

保留中のプロポーザルの数。

etcd_server_proposals_failed_total

Counter

失敗したプロポーザルの数。

memory_utilization_byte

Gauge

メモリ使用量。単位: バイト。

説明

ダッシュボードガイド

ダッシュボードは、コンポーネントのメトリックと関連する Prometheus Query Language (PromQL) クエリから構築されます。以下のセクションでは、ダッシュボードの可観測性表示と特徴について説明します。

可観測性表示

etcd

特徴分析

名前

PromQL

説明

Etcd ヘルスステータス

  • etcd_server_has_leader

  • etcd_server_is_leader == 1

  • etcd メンバーが生存しているかどうかを示します。正常値は 3 です。

  • etcd メンバーがリーダーであるかどうかを示します。正常な場合、1 つのメンバーがリーダーでなければなりません。

過去 1 日間のリーダーの変更

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

過去 1 日間に etcd クラスターでリーダーが変更された回数。

メモリ使用量

memory_utilization_byte{container="etcd"}

メモリ使用量。単位: バイト。

CPU 使用率

cpu_utilization_core{container="etcd"}*1000

CPU 使用率。単位: ミリコア。

ディスクサイズ

etcd_mvcc_db_total_size_in_bytes

etcd バックエンド DB の合計サイズ。

etcd_mvcc_db_total_size_in_use_in_bytes

etcd バックエンド DB の実際の使用サイズ。

Key-Value ペアの総数

etcd_debugging_mvcc_keys_total

etcd クラスター内の Key-Value (KV) ペアの総数。

バックエンドコミットレイテンシー

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

バックエンドのコミットレイテンシー。これは、プロポーザルが etcd データベースに永続的に保存されるのに必要な時間です。

Raft プロポーザルステータス

rate(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 プロポーザルの数の差。これは、コミットされたがまだ実行されていないプロポーザルの数を示します。

一般的なメトリックの異常

Etcd ヘルスステータス

正常なケース

異常なケース

異常の説明

3 つの etcd メンバーすべてにリーダーがおり、そのうちの 1 つがリーダーです。これは、sum(etcd_server_has_leader)=3 であり、1 つのメンバーのみが etcd_server_is_leader == 1 であることを意味します。

単一のメンバーが異常です。

異常なメンバーは etcd_server_has_leader!=1 となります。これは etcd クラスターの全体的なサービスには影響しません。

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

複数のメンバーが etcd_server_has_leader!=1 となります。複数のメンバーが異常な場合、etcd クラスターはサービスを提供できません。

また、いずれかのメンバーが etcd_server_is_leader == 1 であるかを確認します。そうでない場合、etcd にはリーダーがなく、サービスを提供できません。

バックエンドコミットレイテンシー

正常なケース

異常なケース

異常の説明

メトリックは数ミリ秒から数十ミリ秒の範囲です。

レイテンシーが数百ミリ秒、あるいは数秒で持続します。

ディスク I/O に異常があります。

Raft プロポーザルの異常

正常なケース

異常なケース

異常の説明

失敗した Raft プロポーザルのレートは 0 です。

失敗した Raft プロポーザルの数が 0 より大きいです。

一部の Raft プロポーザルの送信に失敗しました。この数が高い場合は、さらなる調査が必要です。

保留中の Raft プロポーザルの総数は 0 です。

保留中の Raft プロポーザルの総数が 0 より大きいです。

送信された Raft プロポーザルにバックログがあります。これは通常、適用速度が遅いためです。バックエンドのコミットレイテンシーと合わせて分析できます。

コミットされた Raft プロポーザルと適用された Raft プロポーザルの数の差は 0 です。

コミットされたプロポーザルと適用されたプロポーザルの数の差が 0 より大きいです。

クライアントリクエストが多すぎて、etcd に高い負荷がかかっています。

この値が 5000 を超えると、etcd は後続のリクエストを拒否し、プロポーザルのバックログが処理されるまで too many requests を返します。

参照

他のコントロールプレーンコンポーネントのメトリック、ダッシュボードガイド、および一般的なメトリックの異常に関する詳細については、「kube-apiserver コンポーネントのメトリック」、「kube-scheduler コンポーネントのメトリック」、「コンポーネントのメトリック」、および「cloud-controller-manager コンポーネントのメトリック」をご参照ください。