Skip to content

blinklabs-io/nview

Repository files navigation

nview

nview is a local monitoring tool for a Cardano Node (cardano-node) meant to complement remote monitoring tools by providing a local view of a running node from the command line. It's a TUI (terminal user interface) designed to fit most screens.

nview screenshot

Design and functionality

The goal with nview is to provide an alternative to the Guild LiveView (gLiveView.sh) shell scripts which is shipped as a single binary with all of the functionality included natively. This allows the tool to be more portable to non-Linux systems by using Go standard library functionality.

The design is more in line with a 12-factor application, with no config files or other on-disk requirements. Functionality is controlled via environment variables within the application's context. This prevents the application from being a drop-in replacement for gLiveView for Cardano Node administrators, but unlocks the ability to add functionality beyond that easily attainable with a shell script.

Usage

Running nview against a running Cardano Node will work out of the box with a default Cardano Node configuration, which exposes metrics in Prometheus data format on a specific port.

./nview

Or, from source:

go run .

Configuration

Configuration can be controlled by either a configuration file or environment variables. In cases where both are present, the environment variable takes precedence.

Configuration (env)

The following environment variables control the behavior of the application.

  • NODE_NAME - Changes the name displayed by nview, default is "Cardano Node", maximum 19 characters
  • NETWORK - Short-cut environment variable to use a default configuration for the given known named network. Overrides CARDANO_NETWORK, default ""
  • CARDANO_NETWORK - Named network configured on the Cardano Node, default is "mainnet"
  • PROM_HOST - Sets the host address used to fetch Prometheus metrics from a Cardano Node, default is "127.0.0.1"
  • PROM_PORT - Sets the host port used to fetch Prometheus metrics from a Cardano Node, default is 12798
  • PROM_TIMEOUT - Sets the maximum number of seconds to wait for response when polling a Cardano Node for Prometheus metrics, default is 3

Configuration (YAML)

To use a configuration file, run nview with a command line flag to set the file to load as a configuration.

./nview -config /path/to/config.yml

config.yaml:

app:
  nodeName: Cardano Node
  network:
node:
  network: mainnet
  port: 3001
prometheus:
  host: 127.0.0.1
  port: 12798
  timeout: 3

An example configuration is provided at config.yaml.example.

GeoLocation

We embed free GeoLite2 city data created by MaxMind, available from https://www.maxmind.com and licensed under CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/