Uploaded image for project: 'Indy Node'
  1. Indy Node
  2. INDY-715

Command line tool to provide validator status

    Details

    • Sprint:
      11, 12

      Description

      1 Overview

      As a system administrator responsible for running a validator node, I would like a command line tool that would provide me with the current status of the validator.

      2 Tool Description

      Tool name:
      validator-info

      Command line switches:

      Switch Description
      -v Verbose mode (command line)
      --json Format output as JSON (ignores -v)

      This information should be gathered from the perspective of the queried node. Information should be gathered without querying the ledger pool, but instead from the files on the filesystem and other services. For example, the count of the number of transactions should be based on the local file-based copy of the ledger instead of querying the pool in general. This is also true for the configuration (e.g., port, IP, etc.) for the validator.

      3 Field Descriptions

      alias
      Name of the node as it's known in the ledger.

      bindings > client > ip
      CIDR address for the client port. Is only shown in the command line output with the -v switch.

      bindings > client > port
      Port number for the client port.

      bindings > client > protocol
      Protocol for the client port. Is only shown in the command line output with the -v switch. Valid values: tcp or udp

      bindings > node > ip
      CIDR address for the node port. Is only shown in the command line output with the -v switch.

      bindings > node > port
      Port number for the node port.

      bindings > node > protocol
      Protocol for the client port. Is only shown in the command line output with the -v switch. Valid values: tcp or udp

      did
      Validator's DID.

      enabled
      Whether or not the validator service is enabled to restart when the system restarts. Valid values are true or false

      response-version
      Semantic version for the JSON output of the tool.

      state
      Current state of the validator service. Valid values: running, stopped, or failed

      timestamp
      The epoch timestamp for when the output was generated. Is only shown in the command line output with the -v switch.

      verkey"
      The verification key for the validator.

      metrics > average-per-second > read-transactions
      Average number of read requests per second currently serviced by the validator.

      metrics > average-per-second > write-transactions
      Average number of write requests per second currently serviced by the validator.

      metrics > transaction-count > config
      Total number of transactions that exist on the config ledger. Is only shown in the command line output with the -v switch.

      metrics > transaction-count > ledger
      Total number of transactions that exist on the ledger.

      metrics > transaction-count > pool
      Total number of transactions that exist in the pool ledger.

      metrics > uptime
      Number of seconds since the last validator service restart.

      pool > reachable > count
      The number of validators in the pool that can be reached (including the validator providing the report).

      pool > reachable > list
      List of validators in the pool that can be reached (including the validator providing the report). Is only shown in the command line output with the -v switch.

      pool > total-count ": 6,
      Total number of validators in the pool (including the validator providing the report).

      pool > unreachable > count
      The number of validators in the pool that cannot be reached (including the validator providing the report).

      pool > unreachable > list
      List of validators in the pool that cannot be reached (including the validator providing the report). Is only shown in the command line output with the -v switch.

      software > indy-node
      Semantic version of the indy-node package that is install on the machine. Is only shown in the command line output with the -v switch.

      software > sovrin
      Semantic version of the sovrin package that is install on the machine. If the sovrin package is not installed, related output is skipped. Is only shown in the command line output with the -v switch.

      4 Sample Output

      Not all attributes are output in the command line version. The command line output also converts second-based times into a more usable format.

      4.1 Command Line (non-verbose)

      Validator valPool01 is currently running
      Validator DID:    9eij3is93yehd9eohawo3hw8dhs9e323
      Verification Key: ~38hfsljasldjf983hw9wohjrojfsosi
      Node Port:        9701
      Client Port:      9702
      Metrics:
        Uptime: 9 days, 16 hours, 33 minutes, 52 seconds
        Total Ledger Transactions:  34847593
        Total Pool Transactions:    103
        Read Transactions/Seconds:  1038
        Write Transactions/Seconds: 42
      Reachable Hosts:   5/6
      Unreachable Hosts: 1/6
      

      4.2 Command Line (verbose)

      Validator valPool01 is currently running
      Current time:     Sunday, August 6, 2017 3:11:50 AM
      Validator DID:    9eij3is93yehd9eohawo3hw8dhs9e323
      Verification Key: ~38hfsljasldjf983hw9wohjrojfsosi
      Node Port:        9701/tcp on 10.0.0.3/32
      Client Port:      9702/tcp on 10.0.7.4/32
      Metrics:
        Uptime: 9 days, 16 hours, 33 minutes, 52 seconds
        Total Config Transactions:  5
        Total Ledger Transactions:  34847593
        Total Pool Transactions:    103
        Read Transactions/Seconds:  1038
        Write Transactions/Seconds: 42
      Reachable Hosts:   5/6
        valPool01
        valPool02
        valPool04
        valPool05
        valPool06
      Unreachable Hosts: 1/6
        valPool03
      Software Versions:
        indy-node: 1.0.28
        sovrin:    1.0.3
      

      4.3 JSON

      {
        "response-version": "1.0.0",
        "timestamp": 1501989110,
        "alias": "valPool01",
        "state": "running",
        "enabled": "true",
        "did": "9eij3is93yehd9eohawo3hw8dhs9e323",
        "verkey": "~38hfsljasldjf983hw9wohjrojfsosi",
        "bindings": {
          "node": {
            "ip": "10.0.0.3/32",
            "port": 9701,
            "protocol": "tcp"
          },
          "client": {
            "ip": "10.0.7.4/32",
            "port": 9702,
            "protocol": "tcp"
          }
        },
        "metrics": {
          "uptime": 837232,
          "transaction-count": {
            "config": 5,
            "ledger": 34847593,
            "pool": 103
          },
         "average-per-second": {
           "read-transactions": 1038,
           "write-transactions": 42,
         }
        },
        "pool": {
          "total-count": 6,
          "reachable": {
            "count": 5,
            "list": [
              "valPool01",
              "valPool02",
              "valPool04",
              "valPool05",
              "valPool06"
            ]
          },
          "unreachable": {
            "count": 1,
            "list": [
              "valPool03"
            ]
          }
        },
        "software": {
          "indy-node": "1.0.28",
          "sovrin": "1.0.3"
        }
      }
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                danielhardman Daniel Hardman
                Reporter:
                tharmon Trev Harmon
                Watchers:
                Alexander Shekhovcov, Andrey Kononykhin, Trev Harmon, Vladimir Shishkin
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 1 day
                  1d
                  Remaining:
                  Remaining Estimate - 1 day
                  1d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified