Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sile/erldash

A simple, terminal-based Erlang dashboard written in Rust
https://github.com/sile/erldash

erlang rust

Last synced: 4 days ago
JSON representation

A simple, terminal-based Erlang dashboard written in Rust

Awesome Lists containing this project

README

        

erldash
=======

[![erldash](https://img.shields.io/crates/v/erldash.svg)](https://crates.io/crates/erldash)
[![Packaging status](https://repology.org/badge/tiny-repos/erldash.svg)](https://repology.org/project/erldash/versions)
[![Actions Status](https://github.com/sile/erldash/workflows/CI/badge.svg)](https://github.com/sile/erldash/actions)
![License](https://img.shields.io/crates/l/erldash)

A simple, terminal-based Erlang dashboard.

`erldash` connects to an Erlang node using [the dynamic node name feature] (since OTP-23) to collect metrics.
It only depends on [`erlang`] and [`erpc`] modules.
So you can use this dashboard out of the box without installing any additional packages to the target Erlang node.

Metrics are collected using [`erlang:statistics/1`], [`erlang:memory/0`] and [`erlang:system_info/1`] functions.

![erldash demo](erldash.gif)

[the dynamic node name feature]: https://www.erlang.org/blog/otp-23-highlights/#dynamic-node-name
[`erlang`]: https://www.erlang.org/doc/man/erlang.html
[`erpc`]: https://www.erlang.org/doc/man/erpc.html
[`erlang:statistics/1`]: https://www.erlang.org/doc/man/erlang.html#statistics-1
[`erlang:memory/0`]: https://www.erlang.org/doc/man/erlang.html#memory-0
[`erlang:system_info/1`]: https://www.erlang.org/doc/man/erlang.html#system_info-1

Installation
------------

### Pre-built binaries

Pre-built binaries for Linux and MacOS are available in [the releases page](https://github.com/sile/erldash/releases).

```console
// An example to download the binary for Linux.
$ VERSION=... # Set the target erldash version such as "0.2.0"
$ curl -L https://github.com/sile/erldash/releases/download/${VERSION}/erldash-${VERSION}.x86_64-unknown-linux-musl -o erldash
$ chmod +x erldash
$ ./erldash
```

### With [Cargo](https://doc.rust-lang.org/cargo/)

If you have installed `cargo` (the package manager for Rust), you can install `erldash` with the following command:
```console
$ cargo install erldash
$ erldash
```

Note that you need to use Rust-v1.58.0 or later to build `erldash`.

Usage
-----

Just execute the following command:

```console
$ erldash run $TARGET_ERLANG_NODE
```

If you need to specify a cookie value other than `$HOME/.erlang.cookie`, please specify that to `--cookie` option.

`$ erldash --help` shows the detailed help message.

You can record the collected metrics to a file via `--record ` option and replay the recorded run using `$ erldash replay ` command.