#benchmarking #web-services #deployment #monitoring #web

bin+lib disturbance

Monitor disturbances in a web service's behaviour

2 unstable releases

0.2.0 Dec 4, 2019
0.1.0 Oct 16, 2019

#339 in Profiling

GPL-3.0-or-later

17KB
184 lines

Disturbance

Crate Build Status

Monitor disturbances in a web service's behaviour.

You may use disturbance as a monitoring utility which is up over an extended period of time to know if a service ever went down/unhealthy. Eg: Uptime during a deployment.

Usage

USAGE:
    disturbance [OPTIONS] <url>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -e, --excludes <excludes>          Response should not match
    -m, --matches <matches>            Response should match
    -p, --parallelism <parallelism>    Parallelism [default: 2]
    -t, --timeout <timeout>            Request timeout in seconds [default: 5]
    -w, --wait <wait>                  Wait time (in ms) between requests per worker. [default: 100]

ARGS:
    <url>    The web service's URL to monitor``

Example

  • Check a website's response distribution to simple GET requets.

    $ disturbance https://example.com/
    Success(200) => 14
    
  • Check a website while also requring a pattern to be present.
    With a pattern that isn't present in the responses:

    $ disturbance https://example.com/ -m test
    DoesNotMatch => 407
    

    With intermittent matches (potentially unstable website):

    $ disturbance https://example.com/ -m true
    Success(200) => 64, DoesNotMatch => 10
    
  • Use an exlusion pattern, to ensure that responses never contain the string that you paas.

    $ disturbance https://example.com/ -e '"success":false'
    DoesNotExclude => 12
    

    Or a good service:

    $ disturbance https://example.com/ -e '"success":true'
    Success(200) => 18
    
  • Configure parallelism to control the number of parallel workers (defaults to 2).

    $ disturbance https://example.com/ -p 4
    Success(200) => 128
    
  • Set a custom timeout in seconds (default 5)

    $ disturbance https://example.com/ -t 1
    ErrorResponse("https://example.com/: timed out") => 4
    
  • Set a custom wait time between requests (default: 100 ms), per worker. If you want

    $ disturbance https://example.com/ -t 1 -w 500
    ErrorResponse("https://example.com/: timed out") => 4
    

Dependencies

~23–32MB
~555K SLoC