Manage analysis servers

This section describes how to configure external analysis database servers to be used with LoadRunner Enterprise.

External analysis database servers

When you view data online, LoadRunner Enterprise reads it from an internal local time series database installed on the Controller machine. By default, the database stores data from all tests that were run on the Controller for a period of 30 days—you can change the default value in Define host settings. The local database runs as a service to ensure that the data is always available during the run (the service is called LoadRunner Data Service).

You can also install and use an external analysis database which enables you to store data from different runs of the same test run on different Controllers in one centralized location. This helps you perform over-time analytics tasks, and provides the following benefits:

  • Easy access to live and post-run data.

  • Enables mashing up LoadRunner Enterprise data with other data vendors, and using third-party dashboards, such as Grafana, to easily visualize the data. For details on the LoadRunner Enterprise—Grafana dashboard, see https://grafana.com/dashboards/7706.

  • Ability to automatically upload raw result data to an external Influx database server. Exporting raw data is useful when, for example, the run results are too large for Analysis to handle, or when you want to use test data in applications developed for your specific needs. For details, see Collaborate and export results.

  • Enables you to use the Quick Trending feature to analyze failed transactions from the Test Runs and Test Management page. For details, see Perform quick trending analysis on test runs.

After you configure an external analysis server, all run data from your selected projects is stored on an external time series database.

When you view data after a test run has finished, LoadRunner Enterprise uses the data stored on the external database. If the external database is unavailable, the data is brought from the local database on the Controller machine.

LoadRunner Enterprise currently supports the InfluxDB time series database for storing data externally.

Note: We recommend using a different connection for different projects in order to keep data access authorization between projects.

Back to top

Configure external analysis servers

To configure your external analysis server, you need to add a connection to your time series database server, and assign it to different projects.

  1. Prerequisites.

    • Make sure you have installed and configured InfluxDB on your local machine.

  2. In LoadRunner Enterprise Administration, select Configuration > Analysis Servers.

  3. Configure the connection to your time series database.

    Click Add new time series database connection, and provide the following details:

    UI Elements

    Description

    Name

    The name given to the server.

    Type

    The database server type.

    Server URL

    Enter the fully qualified domain name for the server (IP addresses are not supported).

    Server Port

    The port number used by the database server.

    Description

    A description of the server.

    InfluxDB Authorization

    Verify that authorization is enabled in <host installation>\bin\influxdb\influxdb.conf ("auth-enabled = true") otherwise the user and password are skipped.

    • Database Name. The name of the Influx database server.

    • User. The user name to access the Influx database server.

    • Password. The password to access the Influx database server.

    • Test Connection. Click to test the connection to the database server.

    Proxy Authentication
    • Proxy Server. The name of the proxy server.

    • User. Enter the relevant user name for the HTTP connection.

    • Password. Enter the relevant password for the HTTP connection.

  4. Assign the database server to different projects.

    1. In the Linked Projects area, click the Assign Projects button to open the Assign Projects to the Analysis Server dialog box.

    2. Select the projects you want to assign to the server, and click Assign. The selected projects are added to the Linked Projects grid.

    3. You can see project details (the project ID, name, and domain in which the project was created), and add or remove linked projects using the Linked Projects grid.

  5. Upload raw results to the Influx database server.

    In Test Options, select Upload raw results to an external analysis database server (InfluxDB) to have LoadRunner Enterprise automatically export raw result data to an InfluxDB database. For details, see Collaborate and export results.

    For details on the raw data that is exported to InfluxDB, see RAW data measurements.

  6. Click Save to save the analysis server template.

  7. Configure a third-party dashboard.

    After setting up the LoadRunner Enterprise integration with InfluxDB, configure a third-party dashboard to view performance test run data.

    You can use a third-party dashboard, such as Grafana, to easily visualize the data. For details, see Performance Center integration with InfluxDB.

Back to top

Configure InfluxDB to work with HTTPS

To enable secure communication with your InfluxDB server, you need to perform the following:

  1. Prerequisites

    For the configuration, you need to use either a self-signed or trusted CA signed certificate. These instructions explain how to use a self-signed certificate.

  2. Copy the InfluxDB server certificate to the required LoadRunner Enterprise server and the Controller machines.

    For details, see Distribute certificates in the LoadRunner Enterprise Installation Guide.

  3. Configure InfluxDB to work with HTTPS.

    1. On the InfluxDB machine create a folder for the certificates. For example, C:\ssl.

    2. Copy the influxdb-selfsigned.crt and influxdb-selfsigned.key files to the folder you created.

    3. Open the InfluxDB configuration file <influxdb path>\influxdb.conf and uncomment and set the following parameters:

      Copy code
      # Determines whether HTTPS is enabled.
      https-enabled = true

      # The SSL certificate to use when HTTPS is enabled.
      https-certificate = "C:\\ssl\\influxdb-selfsigned.crt"

      # Use a separate private key location.
      https-private-key = "C:\\ssl\\influxdb-selfsigned.key"
    4. Open the command line and go to the InfluxDB path.

    5. Start the InfluxDB server by running the following command:

      influxd.exe -config influxdb.conf

    6. Check that InfluxDB is running over HTTPS by running the following command:

      influx -ssl -unsafeSsl -host localhost

      Note: If using a CA certificate, remove the -unsafeSsl command: influx -ssl -host localhost.

      You should get the following response:

      Connected to https://localhost:8086 version 1.8.0

      InfluxDB shell version: 1.8.0

  4. Configure InfluxDB in LoadRunner Enterprise. For details, see Configure external analysis servers above.

Back to top

Export analysis server details to an Excel file

To export information displayed in the Analysis Servers grid to an Excel file, click . Data from the grid is saved to an Excel file and downloaded to the Downloads folder of the client user.

Back to top

RAW data measurements

Exporting raw data is useful when, for example, the run results are too large for Analysis to handle, or when you want to use test data in applications developed for your specific needs.

The data exported to InfluxDB is stored in the database as follows:

Measurement Description
Error

The error events that occurred during the test run.

Error events contain a Message, FieldLine, and Iteration field for any query that counts the amount of errors. They also have tags for ScriptName, Host, and GroupName.

Transaction

Complete transaction information.

Transaction events contains the following fields: StartTime, EndTime, ThinkTime, and WastedTime.

To enable a Grafana graph to display Transaction Response Time, you need to add this to the query. For example:

SELECT mean("response-time") FROM (SELECT ("EndTime" - "StartTime" - "ThinkTime")/1000000 AS "response-time" FROM Transaction WHERE ("RunID" =~ /^$RunID$/)) WHERE $timeFilter

This query assumes you use a RunID variable to select the RunID you want to view. The timeFilter is also included. You also have tags that hold information about VuserID, GroupName, and Status.

TransactionBreakdown

Transaction breakdown information.

This is Transaction events that also contain information about Web Page Breakdown. These events have additional columns that contain information about DNSTime, ConnectionTime, ServerTime, NetworkTime, ReceiveTime, FirstBuffTime, SSLTime, ErrorTime, RetryCount, and CompSize.

All values except for RetryCount and CompSize are time-based (measured in microseconds) and represent metrics recorded when running a Web based script.

VuserCount

Vuser count during the test run.

Vuser Count events contain a “Value” field which displays the number of running Vusers at the timestamp of the event.

DataPoint

Datapoint information recorded during the script run.

Datapoint events contain the “Value” field which consists of <timestamp,value>. It also has tags for Name, ScriptName, GroupName, and VuserID.

MonitorDataPoint

Datapoint information recorded by monitors during the run.

This is similar to regular Datapoints. These events have a timestamps-value pair, along with added information about the event Name.

These events contain the information stored from monitors during run, if any were configured.

Each event has a timestamp and relevant columns in which the event's information is stored. The following columns are added to each event by default:

RunID. In the format of “<result folder name>_<timestamp of export>”

Product. Displays the name of the LoadRunner product: LoadRunner Enterprise , LoadRunner Professional, or LoadRunner Cloud.

Emulation. Contains location information if Network Virtualization is used in the test.

Region. Contains region information (available in LoadRunner Cloud only).

Back to top

Notes and limitations

The following are notes and limitations for the analysis server:

Communication Port

Port 8086 should be open for outgoing communication from the LoadRunner Enterprise server, and for incoming communication for the LoadRunner Enterprise host (for an internal database).

For an external database, port 8086 should be open for both incoming and outgoing communication from the LoadRunner Enterpriseserver and LoadRunner Enterprise host.

Communication security and system user LoadRunner Enterprise uses the same user name and password as the LoadRunner Enterprise system user to secure the data (IUSR_METRO by default). However, because the internal Influx database server is sensitive to some special characters, we recommend that you avoid using "\" in the password. If a LoadRunner Enterprise system user has a password with "\", you should change it before running any tests on newly-installed hosts.
Accessing the internal Influx server after reinstalling host

Problem: If you uninstall a host and reinstall it again, and during this time the LoadRunner Enterprise system user name or password is changed, access to the internal Influx database on the host will be denied.

This is because InfluxDB stores its data in a folder that also includes the data of the previous authentication user. By default, the folder is under <installation drive>\var (the path is configurable under <host installation>\bin\influxdb\influxdb.conf).

Resolution: You must delete this folder in order for LoadRunner Enterprise to reconfigure the database with the new user. To avoid data loss when deleting this folder, we recommend changing the identity using the InfluxDB REST API.

Unable to write data

Problem: If you encounter an "Unable to write data" error, it is possible that the maximum limit of series per database has been reached. The default limit is 1,000,000 transactions per database.

Resolution:

  1. On the Controller host, stop the LoadRunner Data Service.

  2. Open the <host installation>\bin\influxdb\influxdb.conf file, and set max-series-per-database=0 to make it unlimited.

Back to top

See also: