Observability Integrations
Artillery can send metrics, traces, and events to any observability vendor that supports OpenTelemetry (OTel). A few integrations are also provided via vendor-specific APIs (e.g. Datadog HTTP API or Datadog agent for Datadog).
This functionality is provided by the built-in publish-metrics plugin.
Integration Guides
- OpenTelemetry - Send data to any OTel-compatible backend
- StatsD - Send metrics to any StatsD-compatible backend
- Datadog
- AWS CloudWatch
- New Relic
- Honeycomb
- Dynatrace
- Grafana
- Dash0
- Splunk
- Prometheus
- Chronosphere
- InfluxDB
- Mixpanel
- Lightstep
Common configuration
Most integrations support these common options:
- Authentication: API keys, tokens, or credentials
- Endpoints: Custom endpoints for on-premise deployments
- Tags/Labels: Add metadata to your metrics
- Filtering: Include or exclude specific metrics
- Sampling: Control trace sampling rates
What data is sent?
- Metrics - all metrics generated by a load test, including custom metrics (e.g. request rates, response times for HTTP-based tests)
- Traces - traces showing request flow in HTTP and Playwright-based scenarios, grouped by scenario
- Events - test start/end notifications
Traces - HTTP
When sending tracing data, Artillery creates a trace per each scenario created, holding all requests that are executed as a part of that scenario. Each request is then broken down further into the following child spans.
dns_lookuptcp_handshaketls_negotiationrequestfirst_bytedownload
The following attributes are set by default on all request spans:
test_id: unique id for the test run Added inv2.0.6vu.uuid: unique id for the virtual userurl.full: full URL of the requestserver.address: hostnameserver.port: porthttp.request.method: HTTP method e.g.GEThttp.response.status_code: HTTP status code e.g.200response.time.ms: time-to-first-byte of the response in milliseconds
Traces - Playwright
Added inv2.0.1A trace is created for each scenario/virtual user execution and it holds a span for each:
test.stepcall: remains active for the duration of thetest.stepfunction- Page navigated: This span is active for the duration of time consumed on the given page
Information added to spans:
test_id: unique id for the test run attribute is set on all spans. Added inv2.0.6vu.uuid: unique id for the virtual user attribute is set on all spans.browser.memory_used_mb: representsusedJSHeapSize. This attribute is set on page spans whenextendedMetricssetting is enabled in the Playwright engine config.dominteractive: time it takes for DOM to become interactive. This attribute is set on page spans whenextendedMetricssetting is enabled in the Playwright engine config.- Attributes set with
attributesin the tracing config are added to all spans. - Web Vitals (when available) are recorded as events, as well as set as attributes on page spans. Events are named by the given Web Vital abbreviation (e.g.
TTFBfor Time To First Byte), and attribute names are in the following format:web_vitals.<web_vital_metric_name>.value: the value of given web vital metric. This attribute is set on page spans, and only when available.web_vitals.<web_vital_metric_name>.rating: the rating of given web vital metric. This attribute is set on page spans, and only when available.
- Errors are recorded as exceptions and as span status set to
ERROR.
Last updated on