StatsD publishing plugin for Artillery
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test Adding lots of tests Oct 31, 2016
.eslintrc Adding lots of tests Oct 31, 2016
.gitignore Init Sep 20, 2015
.jscsrc Init Sep 20, 2015
README.md Forgot to commit some of my updates. Oct 31, 2016
circle.yml fix: CircleCI config Apr 22, 2017
config.js Init Sep 20, 2015
index.js chore: Upgrade packages with reported security vulnerabilities Sep 12, 2018
package-lock.json 2.2.1 Sep 12, 2018
package.json 2.2.1 Sep 12, 2018

README.md

StatsD output for Artillery stats

This Artillery plugin allows you to publish the stats produced by Artillery CLI to StatsD in real-time.

Usage

Install

npm install -g artillery-plugin-statsd - if you've installed Artillery globally

npm install artillery-plugin-statsd otherwise.

Use

Enable the plugin by adding it in your test script's config.plugins section:

{
  "config": {
    // ...
    "plugins": {
      "statsd": {
        "host": "localhost",
        "port": 8125,
        "prefix": "artillery"
      }
    }
  }
  // ...
}

host, port, and prefix are optional; the values above are the defaults.

Published metrics

By default, all stats from artillery are reported. This includes any custom stats you may have in place. As of artillery@1.5.0-17, the metrics you can expect to see are as follows.

  • scenariosCreated
  • scenariosCompleted
  • requestsCompleted
  • latency.min
  • latency.max
  • latency.median
  • latency.p95
  • latency.p99
  • rps.count
  • rps.mean
  • scenarioDuration.min
  • scenarioDuration.max
  • scenarioDuration.median
  • scenarioDuration.p95
  • scenarioDuration.p99
  • scenarioCounts.0, scenarioCounts.0 etc
  • codes.200, codes.301 etc
  • errors.ECONNREFUSED, errors.ETIMEDOUT etc
  • matches
  • concurrency
  • pendingRequests

Metrics will be added or removed based on what artillery decides to send.

If a metric is null or cannot be resolved to a number, the default value of 0 is sent. You can change the default value in the configuration by passing in the property default. Example:

"default": 100000 - Metrics are sent with gauges so avoid negative numbers.

Metrics can be skipped by passing in an additional configuration property skipList. Skip list values can look like the following:

  • "skipList": "scenarioDuration" - would skip all scenarioDuration metrics
  • "skipList": "latency.max" - would skip only the latency.max metric
  • "skipList": "scenarioDuration, latency.max" - a comma separated list can be used to pass in multiple values.

Using with Librato

This plugin can be used to publish metrics to Librato:

  1. Install StatsD with:

npm install statsd

  1. Add Librato backend to StatsD:

cd /path/to/statsd npm install statsd-librato-backend

Enable the backend in your StatsD config:

{
  librato: {
    email:  "mylibrato@email.com",
    token:  "a161e2bc22b1bdd0cfe90412token10498token22dd52cat792doge1ab5a1d32"
  },
  backends: ['statsd-librato-backend']
}
  1. Run StatsD and use Artillery with this plugin.

License

artillery-plugin-statsd is distributed under the terms of the ISC license.