Artillery plugin that reports load test results to Datadog.
The plugin uses datadog-metrics to submit Artillery metrics to Datadog over HTTPS and does not require a StatsD server (Datadog Agent). An alternative to this is artillery-plugin-statsd which uses StatsD.
- Install this plugin and Artillery (
npm install artillery artillery-plugin-datadog
) - Create a configuration file for Artillery. Specify Datadog as the plugin to use.
# skynet.yaml
config:
target: https://skynet.org
phases:
- duration: 3
arrivalRate: 15
name: "First stage"
plugins:
datadog:
# Custom hostname (leave blank if not desired)
host: ''
# Custom metric prefix (defaults to 'artillery.')
prefix: 'artillery.'
# Additional tags for all metrics
tags:
- 'mode:test'
scenarios:
- flow:
- get:
url: /status
Run artillery and specify Datadog API key as an environment variable.
$ DATADOG_API_KEY=xxxxxxxxxxxx artillery run skynet.yaml
The following metrics are collected from Artillery and sent to Datadog.
- artillery.scenarios.created: Number of scenarios created
- artillery.scenarios.completed: Number of scenarios completed
- artillery.requests.pending: Number of HTTP requests pending
- artillery.requests.completed: Number of HTTP requests completed
- artillery.response.2xx: Aggregate count of all responses whose HTTP code was in the
2xx
range - artillery.response.3xx: Aggregate count of all responses whose HTTP code was in the
3xx
range - artillery.response.4xx: Aggregate count of all responses whose HTTP code was in the
4xx
range - artillery.response.5xx: Aggregate count of all responses whose HTTP code was in the
5xx
range - artillery.response.200: Count of responses whose HTTP code was
200
(exactly). Similarly named metric is repeated for each response status code - artillery.response.ok_pct: Percentage (in the range
0 - 100
) of responses that returned with a2xx
or3xx
status code - artillery.latency.min: Min latency
- artillery.latency.max: Max latency
- artillery.latency.p99: 99th percentile latency
- artillery.latency.p95: 95th percentile latency
- artillery.latency.median: Median latency
- artillery.scenarioDuration.min: Min scenario duration
- artillery.scenarioDuration.max: Max scenario duration
- artillery.scenarioDuration.median: Median scenario duration
- artillery.scenarioDuration.p95: 95th percentile scenario duration
- artillery.scenarioDuration.p99: 99th percentile scenario duration
- artillery.rps.mean: Average number of requests per second
Artillery plugin system documentation is at github.com/shoreditch-ops/artillery.
To display debug info, run Artillery with the DEBUG
environment variable:
$ DATADOG_API_KEY=xxxxx DEBUG=metrics,plugin:datadog artillery run skynet.yml