/sig

Statistics in Go - CLI tool for quick statistical analysis of data streams

Primary LanguageGoMIT LicenseMIT

sig

License: MIT Go Report Card Coverage Status go.dev reference

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

The compiled docker images are maintained on GitHub Container Registry (ghcr.io). We maintain the following tags:

  • edge: Image that is build from the current HEAD of 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

  1. Fork the clok/sig repo
  2. Use go >= 1.17
  3. Branch & Code
  4. Run linters šŸ§¹ golangci-lint run
  5. Commit with a Conventional Commit
  6. Open a PR

Versioning

We employ git-chglog to manage the CHANGELOG.md. For the versions available, see the tags on this repository.

Authors

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