/damon

A terminal UI (TUI) for HashiCorp Nomad

Primary LanguageGoMozilla Public License 2.0MPL-2.0

Damon - A terminal Dashboard for HashiCorp Nomad

Damon is a terminal user interface (TUI) for Nomad. It provides functionality to observe and interact with Nomad resources such as Jobs, Deployments, or Allocations. Interactions include:

  • View Jobs and Job allocations
  • View Deployments
  • View Namespaces
  • Show Task events
  • Show Job status/information (equally to $ nomad status <job>)
  • Show Logs in an active log stream (including filtering + highlighting).
  • and more...

Additional Notes

Damon is in an early stage and is under active development. We are working on improving the performance and adding new features to Damon. Please take a look at the Damon project board to see what features you can expect in near future. If you find a bug or you have great ideas how Damon can be improved feel free to open an issue. To avoid duplicates, please check the project board before submitting one. Thank you!

Screenshot

image

Installation

Brew

--> Coming soon

Building from source and Run Damon

Make sure you have your go environment setup:

  1. Clone the project
  2. Run $ make build to build the binary
  3. Run $ make run to run the binary
  4. You can use $ make install-osx on a Mac to cp the binary to /usr/local/bin/damon

or

$ go install ./cmd/damon

How to use it

Once Damon is installed and avialable in your path, simply run:

$ damon

Environment Variables

Damon reads the following environment variables on startup:

  • NOMAD_TOKEN
  • NOMAD_ADDR
  • NOMAD_REGION
  • NOMAD_NAMESPACE
  • NOMAD_HTTP_AUTH
  • NOMAD_CACERT
  • NOMAD_CAPATH
  • NOMAD_CLIENT_CERT
  • NOMAD_CLIENT_KEY
  • NOMAD_TLS_SERVER_NAME
  • NOMAD_SKIP_VERIFY

You can read about them in detail here.

Navigation

General

On every table or text view, you can use:

  • k or arrow up to navigate up
  • j or arrow down to navigate down

Top Level Commands

  • Show Jobs: ctrl-j
  • Show Deployments: ctrl-d
  • Show Namespaces: ctrl-n
  • Jump to a Jobs Allocations: ctrl-j
  • Switch Namespace: s
  • Quit: ctrl-c

Job View Commands

  • Show Allocations for a Job: <ENTER> (on the selected job)
  • Show TaskGroups for a Job: <t> (on the selected job)
  • Show information for a Job: <i> (on the selected job)
  • Filter Job: </> (on the selected job)
  • Show Job Info: i (on the selected job)

Task View Commands

  • Show logs on STDOUT for a Task: <ENTER>
  • Show logs on STDERR for a Task: <ctrl-e>
  • Show events for a Task: <e>

Log View

When Damon displays logs, you can navigate through the logs using j, k, G, and g.

  • To filter logs you can hit / which will open an input field to enter the filter string.
  • To highligh logs you can hit h. This will also open an input field to enter the highlighting string.
  • Hit s to stop a log stream.
  • Hit r to resume a log stream.