sig
Statistics in Go - CLI tool for quick statistical analysis of data streams
Statistics in Go - CLI tool for quick statistical analysis of data streams
Please see the docs for details on the commands.
$ sig --help
NAME:
   sig - Statistics in Go - CLI tool for quick statistical analysis of data streams
USAGE:
   sig [global options] command [command options] [arguments...]
AUTHOR:
   Derek Smith <derek@clokwork.net>
COMMANDS:
   simple      simple statistics - one time batch process
   stream      stream process
   version, v  Print version info
   help, h     Shows a list of commands or help for one command
GLOBAL OPTIONS:
   --help, -h     show help (default: false)
   --version, -v  print the version (default: false)
COPYRIGHT:
   (c) 2022 Derek Smith
Use Cases
Simple
$ cat tmp/random.log | sig simple 
N       Min     Max     Mean    Mode    Median  Sum     Std Dev Variance        p50     p75     p90     p95     p99     Q1      Q2      Q3      Outliers        Mild    Extreme
17021   0       255     127.84  70      127     2.176007e+06    74.0224 5479.3108       127     192     231     243     253     64      127     192     0       0       0
$ sig simple -t -p 'tmp/*.log'
N       17021
Min     0
Max     255
Mean    127.84
Mode    70
Median  127
Sum     2.176007e+06
Std Dev 74.0224
Variance        5479.3108
p50     127
p75     192
p90     231
p95     243
p99     253
Q1      64
Q2      127
Q3      192
Outliers        0
Mild    0
Extreme 0
Stream
$ cat tmp/random.log | sig stream
N	5000000
Min	1258
Max	2084
Mean	2.28595
Mode	239
Median	224.55
Sum	1.139274e+07
Std Dev	4.717073
Variance	22.24969850
p50	2245
p75	2245.5
p90	4445
p95	5145
p99	117.55
Q1	107.5
Q2	224.55
Q3	224.55
Outliers	538195
Mild	341450
Extreme	196745
[22] next refresh at N modulo 1,000,000 == 0
... THEN ...
N	11388121
Min	1
Max	2084
Mean	1.56
Mode	1
Median	1
Sum	1.7780861e+07
Std Dev	3.1893
Variance	10.1714
p50	1
p75	2
p90	2
p95	3
p99	7
Q1	1
Q2	1
Q3	2
Outliers	538195
Mild	341450
Extreme	196745
Done. Processed 11,388,121 rows
More to come …
Installation
Homebrew (for macOS users)
brew tap clok/sig
brew install sig
curl binary
$ curl https://i.jpillora.com/clok/sig! | bash
docker
The compiled docker images are maintained on GitHub Container Registry (ghcr.io). We maintain the following tags:
- 
edge: Image that is build from the currentHEADof the main line branch. - 
latest: Image that is built from the latest released version - 
x.y.z(versions): Images that are build from the tagged versions within Github. 
docker pull ghcr.io/clok/sig
docker run -v "$PWD":/workdir ghcr.io/clok/sig --version
man page
To install man page:
$ sig install-manpage
Development
- Fork the clok/sig repo
 - Use 
go >= 1.17 - Branch & Code
 - Run linters :broom: 
golangci-lint run- The project uses golangci-lint
 
 - Commit with a Conventional Commit
 - Open a PR
 
Versioning
We employ git-chglog to manage the CHANGELOG.md. For the versions available, see the tags on this repository.
Authors
- Derek Smith - @clok
 
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE file for details