Skip to Content
DocsObservabilityOverview

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

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_lookup
  • tcp_handshake
  • tls_negotiation
  • request
  • first_byte
  • download

The following attributes are set by default on all request spans:

  • test_id: unique id for the test run Added inv2.0.6
  • vu.uuid: unique id for the virtual user
  • url.full: full URL of the request
  • server.address: hostname
  • server.port: port
  • http.request.method: HTTP method e.g. GET
  • http.response.status_code: HTTP status code e.g. 200
  • response.time.ms: time-to-first-byte of the response in milliseconds

Traces - Playwright

Added inv2.0.1

A trace is created for each scenario/virtual user execution and it holds a span for each:

  • test.step call: remains active for the duration of the test.step function
  • 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.6
  • vu.uuid: unique id for the virtual user attribute is set on all spans.
  • browser.memory_used_mb: represents usedJSHeapSize. This attribute is set on page spans when extendedMetrics setting is enabled in the Playwright engine config.
  • dominteractive: time it takes for DOM to become interactive. This attribute is set on page spans when extendedMetrics setting is enabled in the Playwright engine config.
  • Attributes set with attributes in 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.TTFB for 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