check-health
============

Checks the health of the EDB Postgres Distributed cluster.

Synopsis
^^^^^^^^

Performs various checks such as if all nodes are accessible and all
replication slots are working.

Please note that the current implementation of clock skew may return an
inaccurate skew value if the cluster is under high load while running
this command or has large number of nodes in it.

.. code:: sh

   pgd check-health [flags]

Examples
^^^^^^^^

.. code:: text


     Example 1 (3 node cluster, bdr-a1 and bdr-c1 are up, bdr-b1 is down)

     $ pgd check-health

     Check      Status   Message
     -----      ------   -------
     ClockSkew  Critical Clockskew cannot be determined for at least 1 BDR node pair
     Connection Critical The node bdr-b1 is not accessible
     Raft       Warning  There is at least 1 node that is not accessible
     Replslots  Critical There is at least 1 BDR replication slot which is inactive
     Version    Warning  There is at least 1 node that is not accessible

     Example 2 (3 node cluster, all nodes are up but system clocks are not in sync)

     $ pgd check-health

     Check      Status  Message
     -----      ------  -------
     ClockSkew  Warning At least 1 BDR node pair has clockskew greater than 2 seconds
     Connection Ok      All BDR nodes are accessible
     Raft       Ok      Raft Consensus is working correctly
     Replslots  Ok      All BDR replication slots are working correctly
     Version    Ok      All nodes are running same BDR versions

     Example 3 (3 node cluster, all nodes are up and all checks are Ok)

     $ pgd check-health

     Check      Status Message
     -----      ------ -------
     ClockSkew  Ok     All BDR node pairs have clockskew within permissible limit
     Connection Ok     All BDR nodes are accessible
     Raft       Ok     Raft Consensus is working correctly
     Replslots  Ok     All BDR replication slots are working correctly
     Version    Ok     All nodes are running same BDR versions

Options
^^^^^^^

.. code:: text

     -h, --help   help for check-health

Options inherited from parent commands
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: text

     -f, --config-file string   config file; ignored if 
                                --dsn flag is present (default "/etc/edb/pgd-cli/pgd-cli-config.yml")
         --dsn string           database connection string
                                e.g."host=bdr-a1 port=5432 dbname=bdrdb user=postgres "
     -L, --log-level string     logging level: debug, info, warn, error (default "error")
     -o, --output string        output format: json, yaml
