vdash
is a SAFE Network Vault dashboard for the terminal. It is written in Rust, using tui-rs to create the terminal UI and linemux to monitor vault logfiles on the local machine.
Status: work in progress - not useful yet unless you want to help with testing.
Feature requests and discussion are currently summarised in the opening post of the Safe Network forum topic: Vault Dashboard ideas please!
Where vdash
is headed:
- [x] implement ability to parse logfiles
- [x] add --debug-parser to show results in second logfile
- [x] implement parsing log file for simple metrics and timeline
- [x] keep the debug UI available (selected with 'D' when using --debug-parse)
- [x] change events to use tokio mpsc (unbounded) channel
- [ ] does tokio mpsc fix loss of updates from linemux (see linemux issue #17)
- [ ] implement vault dashboard
- [x] vault status summary page (single vault)
- [x] debug window (--debug-window)
- [x] add basic vault stats (age/PUTs/GETs)
- [x] scroll vault logfile (arrow keys)
- [x] multiple vaults (navigate with tab and arrow keys)
- [ ] add a timeline
- [x] simple timeline with PUTS and GETS
- [ ] mod sparkline widget so can anchor 'now' to right border
- [ ] more scales: minute, hour, day etc (bucket set for each)
- [ ] reduce lag in processing logfile changes
- [ ] add a dummy test chart
- [ ] mock storage chart: horizontal bar chart (vault storage limit/used)
- [ ] mock chunk metering: vertical bar chart (total, immutable, sequence etc chunks)
- [ ] get real data into storage chart (poll disk)
- [ ] get real data into chunk metering
- [ ] Summary view: all vaults on one page
- [ ] trim VaultMetrics timeline
- [ ] logtail-dash Issue #1: Implement popup help on ?, h, H
- [ ] Implement --features="vdash" / --features="logtail" to select app and UI
1 Install Rust via https://doc.rust-lang.org/cargo/getting-started/installation.html
2a. Linux/MacOS install vdash:
cargo install vdash
vdash --help
2b. Windows install vdash-crossterm:
cargo install vdash --bin logtail-crossterm --features="crossterm"
vdash-crossterm --help
3a. Linux/MacOS (optional) install vdash:
cargo install vdash
vdash --help
3b. Windows (optional) install vdash-crossterm:
cargo install vdash --bin vdash-crossterm --features="crossterm"
vdash-crossterm --help
vdash
is provides a terminal based graphical dashboard of SAFE Network Vault activity on the local machine. It parses input from one or more vault logfiles to gather live vault metrics which are displayed using terminal graphics.
Status: work-in-progress, not useful yet unless you want to help!
Get Rust: see: https://doc.rust-lang.org/cargo/getting-started/installation.html
Get the SAFE CLI: either download using an install script or build the SAFE CLI locally. Instructions for both options are here.
Get the SAFE Vault: when you have the SAFE CLI working you can install the vault software with the command safe vault install
(details here).
You are now ready to install vdash
and can test it by running a local test network.
In the terminal type the command and the paths of one or more vault logfiles you want to monitor. For example:
vdash ~/.safe/vault/local-vault/safe_vault.log
When the dashboard is active, pressing 's' or 'd' switches between summary and detail views. For more information:
vdash --help
IMPORTANT: You must ensure the vault logfile includes the telemetry information used by vdash by setting the required logging level (e.g. 'info', or 'debug' etc).
The required level may change as things progress, so for now I recommend using a logging level of 'info' to keep resources minimal. The logfile will be larger and vdash become slower, but may have access to more metrics if you increase the logging level to 'debug', or even 'trace'.
You control the vault logging level by setting the environment variable RUST_LOG
but be aware that setting this to one of to one of 'warn', 'info', 'debug', or 'trace' will apply this to all modules used by safe_vault
code, not just the safe_vault
module. You can though set the default to one level and different levels for other modules.
For example, to set the default level to 'debug' for everything, except for the quinn
module which generates a lot of unnecessary INFO log messages, module use:
sh
RUST_LOG=debug,quinn=error safe vault join
Or
sh
RUST_LOG=debug,quinn=error safe vault run-baby-fleming -t
When there is a live test network you will be able to use vdash
with that, but pre-beta those test networks are only available intermittently. The following therefore shows how to run a local test network and use vdash
with this.
For clarity, RUST_LOG is not shown in subsequent examples, so don't forget to include it!
-t
option to create an account and authorise the CLI with it altogether. As here:
safe vault run-baby-fleming -t
vdash
with:
vdash ~/.safe/vault/baby-fleming-vaults/*/safe_vault.log
Or with a live network:
vdash ~/.safe/vault/local-vault/safe_vault.log
vdash
. For example, to use the SAFE CLI to upload files:
safe files put ./<some-directory>/ --recursive
If you want to try vdash
with a live network, check to see if one is running at the SAFE Network community forum: https://safenetforum.org
See Get SAFE Network Pre-requisites.
git clone https://github.com/theWebalyst/vdash
cd vdash
Build vdash
with the termion backend (see tui-rs).
Note: MacOS is untested but may 'just work'.
cargo build --features="termion" --features="vdash" --release
Builds vdash
the crossterm backend (see tui-rs), with the intention to support Windows.
NOT working on Windows yet, this is being worked on at the moment. Help with testing appreciated.
cargo build --bin logtail-crossterm --features="crossterm" --features="vdash" --release
Everything is GPL3.0 unless otherwise stated. Any contributions are accepted on the condition they conform to this license.
See also ./LICENSE