Manage analysis servers

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

About 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.

  • 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 Collate and export raw 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.

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 and OneAnalysis.

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

Back to top

Configure external InfluxDB 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.

    Installation

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

    Secure Communication

    To enable secure communication with your InfluxDB server, perform the steps described in Enable HTTPS with external InfluxDB.

    InfluxDB 2.x

    When working with InfluxDB version 2.x, run the following InfluxDB commands from the command line interface:

    influx.exe v1 auth create --username User --password Password --token YourToken --org YourOrg --read-bucket bucketId --write-bucket bucketId

    influx.exe v1 dbrp create --bucket-id bucketId --rp PC_DEFAULT_RP --db DatabaseName --default --token YourToken --org YourOrg

    where User, Password, and DatabaseName are used in the InfluxDB Authorization section of the Analysis Servers dialog box below.

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

  3. Configure the connection to your time series database.

    Click the Add new Time Series database connection button , and provide the following details:

    UI Elements

    Description

    Name

    The name of the database server.

    Note: If you are using an InfluxDB v2.x database server, the database name must be the same name as the bucket you created for the InfluxDB 2.x server.

    Server URL

    The fully qualified domain name for the external InfluxDB server, or an IPv4 or IPv6 address.

    Note for IPv6 addresses:

    • Support for IPv6 is available in version 24.3 and later.

    • The external InfluxDB server IPv6 address must in the format http(s)://[server IPv6 address].

    Server Port

    The port number used by the database server.

    Type

    Displays the database server type (Influx).

    Description

    A description of the server.

    InfluxDB Authorization

    Enter the following:

    • 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.

    InfluxDB 1.8.x only: Verify that authorization is enabled in <LRE_host_installdir>\bin\influxdb\influxdb.conf ("auth-enabled = true"), otherwise the user and password are skipped.

    Proxy Authentication

    Enter the following:

    • Proxy Server. The name of the proxy server.
    • User. The relevant user name for the HTTP connection.

    • Password. The relevant password for the HTTP connection.

    Test Connection

    Click to test the connection to the database server.

  4. Assign the database server to different projects.

    1. In the Linked Projects area, click Assign to open the Assign Projects 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 result data to the Influx database server.

    1. In the Test Management module, go to Test & Scripts . In the Tests and Scripts tab, click on an ID of a performance test.

    2. In the Groups and Workload tab, click the Test Options button Test Options button in the Groups pane toolbar. The Test Options dialog box opens.

    3. Open the Collate tab and 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 Collate and export raw 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.

Back to top

Enable HTTPS with external InfluxDB

This section explains how to enable secure communication with your external InfluxDB server. The steps differ according to the InfluxDB version you have.

To enable secure communication with your external InfluxDB server:

  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 (available from Installation).

  3. Configure InfluxDB to work with HTTPS.

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

Back to top

Enable HTTPS with internal InfluxDB

When running a LoadRunner Enterprise test, the Controller stores online graph data on the local InfluxDB. To store the online graph data, the Controller calls for the REST API provided by the InfluxDB. By default, the local InfluxDB runs on port 8086 and the REST calls are issued using the HTTP protocol. The LoadRunner Enterprise server calls for the InfluxDB REST API to retrieve the online graph data while running a test or when viewing test run results offline.

We recommend enabling HTTPS, especially if you plan on sending requests to InfluxDB over a network. Enabling HTTPS encrypts the communication between the Controller and the InfluxDB server.

To enable secure communication between the Controller and the local InfluxDB server:

  1. Prepare the TLS certificate and the certificate private key files. InfluxDB supports three types of TLS certificates:

    • Single domain certificate issued to the Controller machine.

    • Domain wildcard certificate.

    • Self-signed certificate. The certificate must be added to the trusted root repository on both the Controller and the LoadRunner Enterprise server.

    Example:

    Here is an example for creating a self-signed certificate influxdb.cer and private key influxdb.cer.pk using OpenSSL. The certificate is for a Controller named cntrl_machine.domain.org.

    Copy code
       openssl.exe req -x509 -nodes -newkey rsa:2048 -keyout ./influxdb.cer.pk -out ./influxdb.cer -days 3600 -extensions 'req_ext' -config ./request.conf

     

    The content of request.conf:

    Copy code
    [ req ]
    distinguished_name = dn
    x509_extensions = req_ext 
    prompt = no       
                    
    [ dn ]     
    CN = cntrl_machine.domain.org
                    
    [ req_ext ]           
    keyUsage = keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alternate_names
                    
    [ alternate_names ]
    DNS.1 = cntrl_machine.domain.org
    DNS.2 = cntrl_machine
  2. Install the certificate on the Controller machine and configure the InfluxDB settings.

    1. Copy the influxdb.cer and influxdb.cer.pk files to the <LRE_host_installdir>\bin\influxdb\tls folder.

    2. Go to <LRE_host_installdir>\bin\influxdb\config.yaml and add the following lines:

      Copy code
            tls-cert: ./tls/influxdb.cer
            tls-key: ./tls/influxdb.cer.pk

      Tip: If you want to change port 8086 to another port, change the port value in the config.yaml file.

    3. Restart the LoadRunner Data Service.

    4. Go to <LRE_host_installdir>\dat\LTS.config and change the value of the InfluxDBSettings IsSecured parameter to true.

      Copy code

      Example before:

      <InfluxDbSettings port="8086" IsSecured="false"
      Copy code
      Example after:
      <InfluxDbSettings port="8086" IsSecured="true"

       

      If the InfluxDB port is not 8086, set the required port value here.

    5. Restart the LoadRunner Load Testing Service.

  3. Configure the InfluxDB settings on the LoadRunner Enterprise server.

    1. Edit the PCS.config file located in <LRE_server_installdir>\dat\ by changing the value of the InfluxDBSettings IsSecured parameter to true.

      Copy code

      Example before:

      <InfluxDbSettings port="8086" IsSecured="false"
      Copy code
      Example after:
      <InfluxDbSettings port="8086" IsSecured="true"

       

      If the InfluxDB port is not 8086, set the required port value here.

    2. Restart IIS.

Back to top

Export analysis server details to Excel

To export information displayed in the Analysis Servers grid to an Excel file, click Export to Excel . 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 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 must 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 must be open for both incoming and outgoing communication from the LoadRunner Enterprise server 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 "\", 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 is 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 <LRE_host_installdir>\orchidtmp\influxdb.

Resolution: You must delete this folder in order for LoadRunner Enterprise to reconfigure the database with the new user.

Unable to write data

(InfluxDB 1.8.x only) 

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 <LRE_host_installdir>\bin\influxdb\influxdb.conf file, and set max-series-per-database=0 to make it unlimited.

Back to top