Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/gatling/gatling.io-doc/llms.txt

Use this file to discover all available pages before exploring further.

Gatling Enterprise Edition can push load test metrics — response times, throughput, error rates, virtual user counts, and more — directly to your existing observability platform. This lets you overlay load test behavior on application traces, infrastructure KPIs, and logs in a single dashboard, dramatically accelerating root cause analysis during and after performance runs.
All observability integrations are available exclusively on Gatling Enterprise Edition with private locations. Each integration is configured through system properties in your control-plane configuration.

Supported Platforms

Datadog

Push metrics and events to your Datadog account for correlation with infrastructure and APM data.

Dynatrace

Send metrics and CUSTOM_INFO events to Dynatrace; also inject request attributes for distributed tracing.

InfluxDB

Write metrics using the InfluxDB Line Protocol — compatible with InfluxDB 1, 2, 3, and QuestDB.

New Relic

Send metrics and events to New Relic for unified observability across load tests and infrastructure.

OpenTelemetry

Export metrics to any OTel-compatible backend: Prometheus, Elastic, Splunk, and more.

Datadog

Prerequisites

  • A valid Datadog API key (for metrics)
  • A valid Datadog Application key (for events)
  • Your Datadog site identifier (e.g., datadoghq.com, datadoghq.eu)
  • Gatling Enterprise Edition private locations with network access to Datadog

Installation

Follow the official Datadog Integration documentation to install the Gatling Enterprise integration in your Datadog account, then add the following system properties to your control-plane configuration:
control-plane {
  locations = [
    {
      system-properties {
        "gatling.enterprise.dd.api.key" = "<your Datadog API key>"
        "gatling.enterprise.dd.application.key" = "<your Datadog application key>"
        "gatling.enterprise.dd.site" = "<your Datadog site>"
        "gatling.enterprise.dd.useProxy" = "false"  # optional, default is false
      }
    }
  ]
}
To remove the integration, delete all lines containing gatling.enterprise.dd from the configuration.

Pushed Data

Events are generated at test injection start and end under the source:gatling-enterprise tag, with tags for team, test, run_id, and phase. Metrics (all prefixed gatling_enterprise.) include:
MetricTypeDescription
user.start_count / user.end_countcountVirtual users started/finished per scenario
user.concurrentgaugeConcurrent virtual users per scenario
request.countcountRequests sent per scenario/group/request
response.countcountResponses per status per scenario/group/request
response.response_time.* (mean, min, p50, p95, p99, p999, max)gaugeResponse time percentiles
response.codecountHTTP response codes per scenario/group/request
group.countcountGroup executions per scenario/group
group.duration.* / group.cumulated.* (mean, min, p50, p95, p99, p999, max)gaugeGroup duration and cumulated response time percentiles
dns.countcountDNS resolution requests
dns.time.* (mean, min, p50, p95, p99, p999, max)gaugeDNS resolution time percentiles
tcp.open_count / tcp.close_countcountTCP connections opened/closed
tcp.connection_count / tls.handshake_countcountTCP connections / TLS handshakes by status
tcp.connect_time.* (mean, min, p50, p95, p99, p999, max)gaugeTCP connection time percentiles
tls.handshake_time.* (mean, min, p50, p95, p99, p999, max)gaugeTLS handshake time percentiles
tcp.state_countgaugeTCP connections by state
bandwidth_usage.sent / bandwidth_usage.receivedcountBandwidth usage
cpu.user / cpu.sysgaugeLoad generator CPU utilization
mem.ram.max / mem.ram.usedgaugeLoad generator RAM usage
mem.heap.max / mem.heap.committed / mem.heap.usedgaugeLoad generator JVM heap usage

Custom Tags

Add custom tags by setting system properties matching gatling.enterprise.dd.tags.<tag_name> = <value>, either at the control-plane level or in your test configuration.

Dynatrace

Prerequisites

  • A Dynatrace API key with the metrics.ingest and events.ingest permissions
  • Your Dynatrace environment ID (e.g., abc12345 from https://abc12345.apps.dynatrace.com)
  • Gatling Enterprise Edition private locations with network access to Dynatrace

Installation

control-plane {
  locations = [
    {
      system-properties {
        "gatling.enterprise.dt.api.key" = "<your Dynatrace API key>"
        "gatling.enterprise.dt.site" = "<your Dynatrace environment ID>"
        "gatling.enterprise.dt.useProxy" = "false"  # optional
      }
    }
  ]
}

HTTP Request Tracing

In addition to the Enterprise Edition push integration, Gatling simulations can inject custom HTTP headers into every generated request so Dynatrace can tag distributed traces with load test context. Use the sign function on HttpProtocol to set the x-dynatrace-test header with these key/value pairs:
AcronymMeaningDescription
VUVirtual User IDUnique identifier for the virtual user
SISource IDIdentifies the load testing tool (Gatling)
TSNTest Step NameLogical step within the script (e.g., Login)
LSNLoad Script NameGroups steps into a transaction
LTNLoad Test NameUniquely identifies the test execution
PCPage ContextDocument context of the processed page

InfluxDB

Compatibility

This integration supports any backend compatible with the InfluxDB Line Protocol (ILP) over HTTP, including InfluxDB 1, 2, and 3, and alternative products such as QuestDB.

Installation

control-plane {
  locations = [
    {
      system-properties {
        "gatling.enterprise.influx.api.authorization" = "<your Authorization header>"
        "gatling.enterprise.influx.api.url" = "<your InfluxDB API URL>"
        "gatling.enterprise.influx.useProxy" = "false"  # optional
      }
    }
  ]
}
The Authorization header format differs by InfluxDB version:
  • InfluxDB 1 & 2: Token YOUR_API_TOKEN
  • InfluxDB 3: Bearer YOUR_API_TOKEN
The API URL must use second precision (precision=s or precision=second).

Schema

Gatling Enterprise Edition writes data to the following measurements. All measurements include common tags run_id, test, team, and load_generator.
MeasurementSpecific TagsFields
gatling_enterprise_usersscenariostart_count, end_count, max_concurrent
gatling_enterprise_requestsscenario, group, requestcount
gatling_enterprise_responsesscenario, group, request, statuscount, time_mean, time_min, time_p50, time_p95, time_p99, time_p999, time_max
gatling_enterprise_responses_by_codescenario, group, request, codecount
gatling_enterprise_group_durationsscenario, group, statuscount, time_mean, time_min, time_p50, time_p95, time_p99, time_p999, time_max
gatling_enterprise_group_cumulatedscenario, group, statuscount, time_mean, time_min, time_p50, time_p95, time_p99, time_p999, time_max
gatling_enterprise_dnshostname, statuscount, time_mean, time_min, time_p50, time_p95, time_p99, time_p999, time_max
gatling_enterprise_connectionsremotebandwidth_usage_sent, bandwidth_usage_received, tcp_open_count, tcp_close_count
gatling_enterprise_tcp_statesremote, statecount
gatling_enterprise_tcp_connectsremote, statuscount, time_mean, time_min, time_p50, time_p95, time_p99, time_p999, time_max
gatling_enterprise_tls_handshakesremote, statuscount, time_mean, time_min, time_p50, time_p95, time_p99, time_p999, time_max
gatling_enterprise_cpuuser, sys
gatling_enterprise_memram_max, ram_used, heap_max, heap_committed, heap_used

New Relic

Prerequisites

  • A New Relic license key (for metrics and events APIs)
  • Your New Relic account ID (for events)

Installation

control-plane {
  locations = [
    {
      system-properties {
        "gatling.enterprise.newrelic.license.key" = "<your New Relic license key>"
        "gatling.enterprise.newrelic.account" = "<your New Relic account ID>"
        "gatling.enterprise.newrelic.dc" = "US"  # or EU; default is US
        "gatling.enterprise.newrelic.useProxy" = "false"  # optional
      }
    }
  ]
}

Custom Attributes

Add extra attributes to all pushed metrics by setting system properties matching:
gatling.enterprise.newrelic.attributes.<ATTRIBUTE_NAME> = <ATTRIBUTE_VALUE>

Events

New Relic receives events of type GatlingTestStart and GatlingTestEnd with attributes: run_id, test, team, source (gatling-enterprise).

OpenTelemetry

The OpenTelemetry integration forwards Gatling Enterprise Edition metrics to an OpenTelemetry Collector, from which they can be routed to any compatible backend — including Prometheus, Elastic, Splunk, Datadog (via OTel), Dynatrace, and New Relic.

Prerequisites

  • A running OpenTelemetry Collector accessible from your private locations
  • Collector endpoint URLs for metrics (and optionally logs)

Installation

control-plane {
  locations = [
    {
      system-properties {
        "gatling.enterprise.opentelemetry.metrics.endpoint" = "http://my-otel-collector/v1/metrics"
        "gatling.enterprise.opentelemetry.logs.endpoint" = "http://my-otel-collector/v1/logs"  # optional
        "gatling.enterprise.opentelemetry.http.headers" = "api-key=mykey"  # optional, percent-encoded
        "gatling.enterprise.opentelemetry.metrics.deltaExponentialHistogramsSupported" = "false"
        "gatling.enterprise.opentelemetry.useProxy" = "false"  # optional
      }
    }
  ]
}

Metric Types

Gatling Enterprise Edition sends all the same metric categories as with direct integrations. When deltaExponentialHistogramsSupported is false (default), response time and duration distributions are sent as separate gauge metrics (mean, min, p50, p95, p99, p999, max). When true, they are sent as delta exponential histograms.
Gatling always uses delta temporality for sums and histograms. Verify that your OpenTelemetry Collector supports delta temporality. For Prometheus, you must enable experimental delta support.

Resource Attributes

All metrics and logs share the following OTel resource attributes:
AttributeValue
run.idID of the test run
service.namegatling.enterprise
team.nameName of the owning team
test.nameName of the test

Log Events

When logs.endpoint is configured, Gatling Enterprise Edition emits log events:
  • Event name: gatling.run.start or gatling.run.end
  • Body: start or end

Build docs developers (and LLMs) love