From c488a0d412d08a822a5fe0c9506b99d593c00265 Mon Sep 17 00:00:00 2001 From: JuanLeon Lahoz Date: Wed, 21 Apr 2021 13:05:46 +0200 Subject: [PATCH] Update documentation --- README.md | 103 +++++++++++++++++++++++++++++++- resources/histogram-example.png | Bin 0 -> 49535 bytes resources/plot-example.png | Bin 0 -> 14610 bytes src/app.rs | 1 - 4 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 resources/histogram-example.png create mode 100644 resources/plot-example.png diff --git a/README.md b/README.md index 852cc34..67877e0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,103 @@ # lowcharts -Tool to draw low-resolution graphs in terminal +Tool to draw low-resolution graphs in terminal. + +**lowcharts** is meant to be used in those scenarios where we have numerical +data in text files that we want to display in the terminal to do a basic +analysis. + +An example would be the logs of a service (webserver, database, proxy, container +orchestration, etc.) where times (or sizes) of requests are logged. In an ideal +world you would have those logs accessible via a kibana (or similar) or those +metrics exposed to a prometheus (or similar) and graphed in a grafana dashboard +(or similar). But sometimes we need to cope with non ideal worlds, and +troubleshoot a service with nothing more of what we can muster in a shell +terminal. + +[![Rust](https://github.com/juan-leon/lowcharts/actions/workflows/test.yml/badge.svg)](https://github.com/juan-leon/lowcharts/actions/workflows/test.yml) + +### Usage + +Type `lowcharts --help`, or `lowcharts PLOT-TYPE --help` for a complete list of +options. + +[![Sample histogram with lowcharts](resources/histogram-example.png)](resources/histogram-example.png) + +Currently two basic types of plots are supported: + +#### Histogram + +This chart is generated using `python3 -c 'import random; [print(random.normalvariate(5, 5)) for _ in range(100000)]' | lowcharts hist`: + + + +This was inspired by [data-hacks](https://github.com/bitly/data_hacks). +However, for some big log files I found that project was slower of what I would +like, and I found that a rust-compiled binary was better suited to my needs. + + +Options for specifying ranges, chart sizes and input files are supported: + +``` +lowcharts hist --max 0.5 --intervals 10 --width 50 data.txt +Samples = 50090; Min = 0.000; Max = 0.499 +Average = 0.181; Variance = 0.023; STD = 0.154 +each ∎ represents a count of 484 +[0.000 .. 0.050] [14545] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ +[0.050 .. 0.100] [ 6111] ∎∎∎∎∎∎∎∎∎∎∎∎ +[0.100 .. 0.150] [ 4911] ∎∎∎∎∎∎∎∎∎∎ +[0.150 .. 0.200] [ 4003] ∎∎∎∎∎∎∎∎ +[0.200 .. 0.250] [ 3745] ∎∎∎∎∎∎∎ +[0.250 .. 0.300] [ 3526] ∎∎∎∎∎∎∎ +[0.300 .. 0.350] [ 3424] ∎∎∎∎∎∎∎ +[0.350 .. 0.400] [ 3332] ∎∎∎∎∎∎ +[0.400 .. 0.450] [ 3215] ∎∎∎∎∎∎ +[0.450 .. 0.500] [ 3278] ∎∎∎∎∎∎ +``` + +Above examples assume input files with a number per line. Options for figuring +out where to look in the input file for values are supported by `regex` option. +This example logs the time spent by nginx for all of 200K http responses () + + +``` +$ cat nginx*.log | lowcharts hist --regex ' 200 \d+ ([0-9.]+)' --intervals 10 +Samples = 25080; Min = 0.004; Max = 0.049 +Average = 0.008; Variance = 0.000; STD = 0.006 +each ∎ represents a count of 228 +[0.004 .. 0.009] [20569] ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ +[0.009 .. 0.013] [ 1329] ∎∎∎∎∎ +[0.013 .. 0.018] [ 807] ∎∎∎ +[0.018 .. 0.022] [ 1412] ∎∎∎∎∎∎ +[0.022 .. 0.027] [ 363] ∎ +[0.027 .. 0.031] [ 27] +[0.031 .. 0.036] [ 128] +[0.036 .. 0.040] [ 22] +[0.040 .. 0.044] [ 240] ∎ +[0.044 .. 0.049] [ 183] +``` + +#### X-Y Plot + +This chart is generated using `cat ram-usage | lowcharts plot --height 20 --width 50`: + +[![Sample plot with lowcharts](resources/plot-example.png)](resources/plot-example.png) + +Note that x axis is not labelled. The tool splits the input data by chunks of a +fixed size and then the chart display the averages of those chunks. In other +words: grouping data by time is not (yet?) supported; you can see the evolution +of a metric over time, but not the speed of that evolution. + +There is regex support for this type of plots. + + +### Building + +``` +$ git clone https://github.com/juan-leon/lowcharts +$ cd lowcharts +$ cargo install --path . +``` + +### Contributing + +Feedback, ideas and pull requests are welcomed. diff --git a/resources/histogram-example.png b/resources/histogram-example.png new file mode 100644 index 0000000000000000000000000000000000000000..bd77c730bf74d4b99e3c2dd2eafc0ee5d73062cf GIT binary patch literal 49535 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 z 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⩔Cp@QO;TjgF$W-M`hfzHg>I<;|LdA&Qs1 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 literal 0 HcmV?d00001 diff --git a/resources/plot-example.png b/resources/plot-example.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7109c9e5c2dbc6b2db69aaa4838def564a5556 GIT binary patch literal 14610 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 EKiiUs^Z)<= literal 0 HcmV?d00001 diff --git a/src/app.rs b/src/app.rs index 35de22c..c2c0a1c 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,6 +1,5 @@ use clap::{self, App, Arg, AppSettings}; -// fn add_common_options<'a> (app: App<'a>) -> App<'a> { fn add_common_options (app: App) -> App { const LONG_RE_ABOUT: &str = "\