pgd raft show
=============

概要
----

``pgd raft show`` コマンドは、EDB
Postgres分散クラスターのRaftコンセンサス情報を表示します。デフォルトでは、3つのセクションが表示されます。

- **State** すべてのノードのコンセンサス状態、\ ``bdr.stat_raft_state``
  から取得。

- **フォロワー** リーダーノードから見たフォロワーの状態、
  ``bdr.stat_raft_followers_state`` からソース。

- **ジャーナル**
  グローバルコンセンサスジャーナルの詳細、\ ``bdr.global_consensus_journal_details``
  から出典。

3つすべてを表示するにはセクションフラグを指定せずにコマンドを実行するか、
``--state`` 、\ ``--followers`` 、または\ ``--journal``
を使用してそのセクションのみを表示します。これらのフラグは相互排他的です。

ユーザーとロール
^^^^^^^^^^^^^^^^

``bdr_monitor`` ロール以上が必要です。 :ref:`ユーザーロール <ユーザーロール>` 
を参照してください。

構文
----

.. code:: plaintext

   pgd raft show [OPTIONS]

オプション
----------

``pgd raft show`` コマンドでは、次のオプションが使用できます。

セクションフラグ
^^^^^^^^^^^^^^^^

.. csv-table::
  :header: Short,Long,Description
  :widths: 12,10,25
  :align: left
  :class: longtable

  "",--state,Stateセクションのみを表示します`bdr.stat_raft_state`からのコンセンサス状態
  "",--followers,Followersセクション`bdr.stat_raft_followers_state`からのフォロワー状態のみを表示します。
  "",--journal,Journalセクションのみを表示します`bdr.global_consensus_journal_details`からのグローバルジャーナルの詳細。

これらのフラグは相互排他的です。

セクションオプション
^^^^^^^^^^^^^^^^^^^^

.. csv-table::
  :header: Short,Long,Applies to,Default,Description
  :widths: auto
  :align: left
  :class: longtable

  "",--group,All states,"",グループ名で出力をフィルタリングします。
  -n,--limit,--journal,20,表示されるジャーナルエントリの数を制限します。

表形式の出力には、使用可能なフィールドのサブセットが表示されます。
``leader_id`` 、\ ``voted_for_id`` 、および\ ``node_id``
は、完全なフィールドセットにのみ含まれます。完全なフィールドセットには\ ``--output json``
または\ ``--output markdown`` を使用します。

共通のグローバルオプションについては、 `Global Options <https://www.enterprisedb.com/docs/pgd/latest/reference/cli/command_ref/#global-options>`_ を参照してください。

例
--

すべてのノードのRaftの状態を表示する
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: shell

   pgd raft show --state
   __OUTPUT__
   Group Name    Node Name State         Leader Name Term Commit Index Apply Index Last Log Index Is Voting Nodes Voting Nodes Protocol Version
   - ------------ --------- ------------- ----------- ---- ------------ ----------- -------------- --------- ----- ------------ ----------------
   dc1_subgroup  kaftan    RAFT_LEADER   kaftan      1    4            4           4              true      3     3            0
   dc1_subgroup  kaboom    RAFT_FOLLOWER kaftan      1    4            4           4              true      3     3            0
   dc1_subgroup  kaolin    RAFT_FOLLOWER kaftan      1    4            4           4              true      3     3            0
   democluster   kaftan    RAFT_LEADER   kaftan      0    335          335         335            true      3     3            5007
   democluster   kaboom    RAFT_FOLLOWER kaftan      0    335          335         335            true      3     3            5007
   democluster   kaolin    RAFT_FOLLOWER kaftan      0    335          335         335            true      3     3            5007

この出力では、 ``dc1_subgroup``
はローカルルーティングを使用するデータグループであり、 ``democluster``
はグローバルルーティングを使用するトップレベルグループです。

``Term`` 列には、現在のRaft用語番号が表示されます。 ``Commit Index``
は、最後にコミットされたログエントリのインデックスを示します。
``Apply Index`` および\ ``Last Log Index``
は、ノードがそれぞれログエントリを適用および受信した範囲を示します。
``Is Voting`` は、ノードがRaft選挙に参加するかどうかを示します。
``Nodes`` は、グループ内のノードの合計数を示します。 ``Voting Nodes``
は、Raftコンセンサスに参加するノードの数を示します。
``Protocol Version`` は、使用中のRaftプロトコルのバージョンを示します。

特定のグループのフォロワーの状態を表示する
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: shell

   pgd raft show --followers --group dc1_subgroup
   __OUTPUT__
   Group Name    Node Name Sent Commit Index Match Index Clock Drift (ms)
   - ------------ --------- ---------------- ----------- ----------------
   dc1_subgroup  kaboom    4                4           -2
   dc1_subgroup  kaolin    4                3           5

``Sent Commit Index``
は、リーダーが各フォロワーに最後に送信したコミットインデックスです。
``Match Index``
は、そのフォロワーでレプリケートされたことが確認された最大のログインデックスです。
``Clock Drift (ms)``
は、ミリ秒単位のリーダーとフォロワー間のおおよそのクロック差です。

カスタム制限を使用して仕訳項目を表示する
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: shell

   pgd raft show --journal --limit 5
   __OUTPUT__
   Group Name    Origin Log Index Term Message Type  Response Type
   - ------------ ------ --------- ---- ------------- ---------------------------
   democluster   kaftan 335       0    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE
   democluster   kaftan 334       0    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE
   democluster   kaftan 333       0    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE
   democluster   kaftan 332       0    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE
   democluster   kaftan 331       0    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE

特定のグループのすべてのセクションを表示する
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: shell

   pgd raft show --group dc1_subgroup
   __OUTPUT__

   #  State

   Group Name    Node Name State         Leader Name Term Commit Index Apply Index Last Log Index Is Voting Nodes Voting Nodes Protocol Version
   - ------------ --------- ------------- ----------- ---- ------------ ----------- -------------- --------- ----- ------------ ----------------
   dc1_subgroup  kaftan    RAFT_LEADER   kaftan      1    4            4           4              true      3     3            0
   dc1_subgroup  kaboom    RAFT_FOLLOWER kaftan      1    4            4           4              true      3     3            0
   dc1_subgroup  kaolin    RAFT_FOLLOWER kaftan      1    4            4           4              true      3     3            0

   #  Followers

   Group Name    Node Name Sent Commit Index Match Index Clock Drift (ms)
   - ------------ --------- ---------------- ----------- ----------------
   dc1_subgroup  kaboom    4                4           -2
   dc1_subgroup  kaolin    4                3           5

   #  Journal

   Group Name    Origin Log Index Term Message Type  Response Type
   - ------------ ------ --------- ---- ------------- ---------------------------
   dc1_subgroup  kaftan 4         1    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE
   dc1_subgroup  kaftan 3         1    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE
   dc1_subgroup  kaftan 2         1    CONFIG_CHANGE CONFIG_CHANGE_RESPONSE
