autocannon-storage
Version:
A utility for storing and sorting autocannon results
134 lines (91 loc) • 4.14 kB
Markdown

A utility module for storing autocannon results in s3 and sorting/retrieving them in useful manners.
```
Usage: autocannon-storage {command} [opts]
A convenient command-line library for storing autocannon results in S3
Available commands:
save
Save autocannon results to s3
load
Load autocannon results from s3 and output them as ndjson
Available options:
-i/--input FILE
The path to some json results to save. Required when not piping into this tool.
-o/--output DIRECTORY
The path to some directory to save results in. Will save results in `${result.finish}.json`
-c/--credentials FILE
The path to some json file with S3 credentials
-k/--accessKey S3_ACCESS_KEY
Some S3 access key
-K/--secretKey S3_SECRET_KEY
Some S3 secret key
-b/--bucket NAME
The title of some S3 bucket
-a/--amount AMOUNT
The amount of results to load
-t/--tag TAG
A semver version tag to tag the results with if doing a save.
An NPM version tag to filter results by if doing a load.
-v/--version
Print the version number.
-h/--help
Print this menu.
```
saving
```
autocannon -d 30 -j localhost:3000 | autocannon-storage save -c ./s3Credentials.json -t `node -e "console.log(require('./package.json').version)"`
```
loading
```
autocannon-storage load -c ./s3Credentials.json -t ">=1.0.0" | autocannon-reporter
```
```js
'use strict'
const storage = require('autocannon-storage')
const abstractBlobStore = require('abstract-blob-store')
const autocannonResults = require('./SOME_AUTOCANNON_RESULTS')
storage.createStore(abstractBlobStore, function (err, store) {
store.save(autocannonResults, function (error) {
// ...
})
store.load({}, function (error, results) {
// ...
})
})
```
Creates an autocannon-storage store that wraps around some library that the implements
[](https://github.com/maxogden/abstract-blob-store) api
* `store`: An object that implements the [abstract-blob-store](https://github.com/maxogden/abstract-blob-store) API
* `callback(err, store)`: the callback that is called when the store is instantiated. This takes an `error` and `store` as parameters. The store implements the store api described below.
An autocannon store object is passed in the callback of the `createStore`, and it wraps
an abstract-blob-store library. It has the following methods.
This takes autocannon results and saves it in the store. These results can also have an added `tag` attribute with semver tags for utilty filtering later.
The callback takes `error` and `metadata` parameters for utility purposes.
This takes a set of options and loads results matching those params from the store.
The callback takes `error` and `results` parameters.
* `opts.amt`: The amount of results to load
* `opts.sort`: a sorting function which is used to sort results before returning. defaults to sorting by most recent `finish` time in the autocannon results
This takes a set of options and filters results to matching those params from the store.
The callback takes `error` and `results` parameters.
* `opts.filter`: A filter function which should return true if some metadata passed to it should be included in the downloaded results. Can be used to filter by tags.
* `opts.amt`: The amount of results to load
* `opts.sort`: a sorting function which is used to sort results before returning. defaults to sorting by most recent `finish` time in the autocannon results
A wrapper around s3-blob-store that creates and returns that store when passed valid credentials and a bucket name
Valid credentials have accessKey and secretKey attributes. Used by the command line functionality.
Sponsored by [nearform](http://www.nearform.com)
[](./LICENSE).