Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
spacez320 committed Feb 1, 2024
1 parent 3cb2a89 commit f2db2f5
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 25 deletions.
75 changes: 50 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,50 @@
cryptarch
=========

Cryptarch is a tool that can be used to run commands and parse their responses
over a time range.
Cryptarch is a tool that can be used to run shell commands and observe their responses over time. It
is meant to aid system administrators, platform engineers, or anyone who spends time observing
things in a CLI.

This project is in the toy phase and might not do much or work very well.
- It's like `watch` except it can draw graphs, tables, etc.
- It's like a simplified `Prometheus` except you can run it directly in your console.

This project is in an active, "alpha" development phase, but should still be useable.

Usage
-----

```
Usage of ./cryptarch:
-d int
Delay between queries (seconds). (default 3)
-l string
Log level. (default "error")
-m int
Mode to execute in.
-p string
Port for RPC. (default "12345")
-q value
Query to execute. (default 0xc0000145f0)
-r int
Result mode to display. (default 2)
-s Don't output anything to a console.
-t int
Number of query executions. -1 for continuous. (default 1)
```
Cryptarch expects a **Query** to gather data with (e.g. a CLI command like `whoami` or `ps aux | wc
-l`). Queries produce **Results** that are stored as a time series.

### Modes

Cryptarch has **Modes"**.

**Query mode** is the default and is for running shell commands.

<<example>>

**Profile mode** is like Query mode except specialized for inspecting systems or processes.

<<example>>

### Displays

Cryptarch executes in one of two modes.
Cryptarch also has **"Displays"** that determine how data is presented.

- **Query** mode is the default and is for querying.
- **Read** mode is for interacting with an already running Cryptarch instance.
**Stream display** just presents incoming data.

### Examples
<<example>>

**Table display** will parse results into a table.

<<example>>

**Graph display** will target a specific field in a result and graph it.

<<example>>

### More Examples

> The examples below have been tested on `GNU bash, version 5.2.15(1)-release`.
Expand All @@ -51,3 +62,17 @@ cryptarch -q 'df -h | grep nvme0n1p2 | awk '\''{print $3}'\'''
cryptarch -q 'uptime' -s -t -1 &
cryptarch -m 1
```

Future
------

I've been adding planned work into [project issues](https://github.com/spacez320/cryptarch/issues)
and [project milestones](https://github.com/spacez320/cryptarch/milestone/1)--take a look there to
see what's coming.

Big planned improvements include things like:

- Ability to perform calculations on streams of data, such as aggregates, rates, or quantile math.
- Better text result management, such as diff'ing.
- Export data to external systems, such as Prometheus.
- More detailed graph display modes.
Binary file added media/graph-display.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/process-mode.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/query-mode.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/table-display.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f2db2f5

Please sign in to comment.