Skip to content

Add External Live Reporting

External Live Reporting

While the test is running in OctoPerf it is also possible to ask OctoPerf to send the metrics to another database. To that end we have implemented several backend listeners from JMeter. Feel free to get in touch with us at support@octoperf.com if you would see others implemented.

The general principle is that every load generator will send its metrics in real time to your database. In the case of large tests, this may result in a large amount of metrics to integrate, make sure to dimension it properly.

Warning

Make sure that your database will be accessible from the load generators while the test is running, otherwise it will not be possible for OctoPerf to send the metrics. In case of a closed environment you can use an on premise agent to that end.

InfluxDB / Grafana

The InfluxDB External reporting allows you to send metrics to your own InfluxDB database and display them in your own grafana dashboards. It is based upon the JMeter InfluxDB backend listener.

InfluxDB / Grafana

Name Description
URL URL of your influxDB database in regards to the OctoPerf load generators. Make sure this is accessible from the load generators.
Token Influx DB Authentication token.
Application Name of the application under test. This will be stored in the events as a tag named application
Measurement Measurement as per Influx Line Protocol Reference.
Event tags Grafana allows a tag for each annotation. This value is stored in the events** measurement as a tag named tags.
Custom tags Custom tags that you want to add for this test.
Percentiles The percentiles you want to send to influxDB. A percentile may contain a fractional part, for example 12.5 (The separator is always ".")
Send detailed metrics When disabled, only a summary with no detail is sent.
Regular expression action names Only the transaction/request names matching this regex will be sent to influxDB.

Note

OctoPerf will automatically add Custom tags as follows:

  • TAG_region = Provider's region
  • TAG_hostname = JMeter container name
  • TAG_virtualUserName = Virtual user name

On top of that we also write the runtime scenario name to testTitle in the backend listener.

Graphite

The Graphite external reporting will push the OctoPerf metrics to your Graphite database during the test. It is based upon the JMeter Graphite backend listener.

Graphite

Name Description
Metrics sender The implementation class that will be used as the metrics sender.
Hostname Graphite hostname. Make sure this is accessible from the load generators.
Port Graphite port.
Root metric prefix The prefix in front of each metric.
Percentiles The percentiles you want to send to influxDB. A percentile may contain a fractional part, for example 12.5 (The separator is always ".")
Send detailed metrics When disabled, only a summary with no detail is sent.
Action names If "Regular expression action names" is activated only the transaction/request names matching this regex will be sent to Graphite. If "Regular expression action names" is disabled a list of the transaction/request names must be provided instead.

Dynatrace

Similarly it is possible to use this mechanism to send detailed metrics to your Dynatrace account. If you need more details on the implementation and available metrics, check Dynatrace's JMeter plugin documentation.

Dynatrace

Name Description
URL Your Dynatrace URL.
API token Your Dynatrace API Token, the procedure to generate one is available here.
Transaction dimensions A comma-separated list of key=value pairs which will be used as dimensions for the test step related metrics.
Test dimensions A comma-separated list of key=value pairs which will be used as dimensions for the test related metrics.

Note

OctoPerf will automatically add Test dimensions as follows:

  • region = Provider's region
  • hostname = JMeter container name
  • virtualUserName = Virtual user name
  • testName = runtime scenario name

Troubleshooting

If you do not see the metrics in your database afterward, try checking the JMeter logs for error messages like this:

ERROR o.a.j.v.b.i.HttpMetricsSender: Error writing metrics to influxDB Url: http://172.17.0.1:8086/api/v2/write?org=test-org&bucket=test_octoperf, responseCode: 401, responseBody: {"code":"unauthorized","message":"unauthorized access"}

external-reporting-error

In this situation your token might be incorrect or expired but other messages will tell you more about what's the issue.