Forked from artillery-plugin-statsd
This Artillery plugin allows you to publish the stats produced by Artillery CLI to Telegraf's StatsD input plugin in real-time.
npm install -g artillery-plugin-telegraf
- if you've installed Artillery globally
npm install artillery-plugin-telegraf
otherwise.
Enable the plugin by adding it in your test script's config.plugins
section:
{
"config": {
// ...
"plugins": {
"telegraf": {
"host": "localhost",
"port": 8125,
"prefix": "artillery",
"tags" : { // -> This is the important change from the standard artillery-plugin-statsd.
// You can tag your metrics with any tag you like for easier grouping and monitoring.
// This feature exists only in Telegraf and not in the standard statsd protocol
"testId": "myTestId"
}
}
}
}
// ...
}
host
, port
, and prefix
are optional; the values above are the defaults.
tags
is optional - used to tag metrics if Telegraf reports to InfluxDB.
Tags are not supported by standard StatsD protocol, only by Telegraf. For more details see here
By default, all stats from artillery are reported. This includes any custom stats you may have in place. As of [email protected]
, 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
etccodes.200
,codes.301
etcerrors.ECONNREFUSED
,errors.ETIMEDOUT
etcmatches
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 allscenarioDuration
metrics"skipList": "latency.max"
- would skip only thelatency.max
metric"skipList": "scenarioDuration, latency.max"
- a comma separated list can be used to pass in multiple values.
artillery-plugin-telegraf is distributed under the terms of the ISC license.