/Dynatrace

Integration between NeoLoad and Dynatrace OneAgent

Primary LanguageJavaBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Dynatrace Logo

Dynatrace Integration for NeoLoad

This integration is not supported anymore because all the features are natively available into Neoload 7.5 and above.

See Neoload documentation.

No more updates will be published on this repository. The experimental version still propose a "Sanity Check" to validate the right deployment of a new release, for example. This is the only feature that is not included in Neoload.

Property Value
Maturity Deprecated
Author Neotys Partner Team
License BSD Simplified

Overview

These Advanced Actions allows you to integrate NeoLoad with Dynatrace in order to correlate data from one tool to another.

This bundle provides inbound and an outbound integration:

  • DynatraceEvents: Links a load testing event to all services used by an application monitored by Dynatrace. Data sent: Neoload Project, Test and Scenario Name. NeoLoadWeb Frontend Url.

  • DynatraceMonitoring

    • Dynatrace → NeoLoad: Retrieves infrastructure and service metrics from Dynatrace and inserts them in NeoLoad External Data so that you can correlate NeoLoad and Dynatrace metrics within NeoLoad. Since NeoLoad GUI 6.8 version, these metrics are sent to NeoLoad Web.

      • Infrastructure metrics:

        host.availability, host.cpu.idle, host.cpu.iowait, host.cpu.steal, host.cpu.system, host.cpu.user, host.disk.availablespace, host.disk.bytesread, host.disk.byteswritten, 
        host.disk.freespacepercentage, host.disk.queuelength, host.disk.readoperations, host.disk.readtime, host.disk.usedspace, host.disk.writeoperations, host.disk.writetime, 
        host.mem.available, host.mem.availablepercentage, host.mem.pagefaults, host.mem.used, host.nic.bytesreceived, host.nic.bytessent, host.nic.packetsreceived
      • Service metrics:

        service.clientsidefailurerate, service.errorcounthttp4xx, service.errorcounthttp5xx, service.failurerate, service.requestspermin, 
        service.responsetime, service.serversidefailurerate
    • NeoLoad -> Dynatrace: Sends the global statistics of the test to Dynatrace OneAgent so they can be used as custom metrics in Dynatrace dashboards.

      • Custom metrics:
        Request.duration, Request.Count, Transaction.Average.Duration, User.Load, Count.Average.Failure, DowLoaded.Average.Bytes, Downloaded.Average.Bytes.PerSecond, 
        Iteration.Average.Failure, Iteration.Average.Success, Request.Average.Count, Request.Average.Success, Request.Average.Failure, Request.Sucess.PerSecond, 
        Request.Failure.PerSeconds, Transaction.Average.Failure, Iteration.Average.Success, Transaction.Failure.PerSecond, Iteration.Average.Success, Transaction.Average.Count, 
        Failure.Rate
    • Other experimental features in the 'develop' branch: DynatraceConfiguration, DynatraceSetAnomalieDetection, DynatraceDeleteAnomalieDetection, DynatraceSanityCheck.

Installation

  1. Download the latest release for NeoLoad from version 6.7 or this release for previous NeoLoad versions.
  2. Read the NeoLoad documentation to see How to install a custom Advanced Action.

New Relic Advanced Action

NeoLoad Set-up

Once installed, how to use in a given NeoLoad project:

  1. Create a “Dynatrace” User Path.
  2. Insert "DynatraceEvents" in the ‘End’ block.
  3. Insert "DynatraceMonitoring" in the ‘Actions’ block.

    Dynatrace User Path

  4. Select the Actions container and set a pacing duration of 30 seconds.

    Action's Pacing

  5. Select the Actions container and set the "Reset user session and emulate new browser between each iteration" runtime parameters to "No".

    Action's Runtime parameters

  6. Create a "PopulationDynatrace" Population that contains 100% of "Dynatrace" User Path.

    Dynatrace Population

  7. In the Runtime section, select your scenario, select the "PopulationDynatrace" population and define a constant load of 1 user for the full duration of the load test.

    Load Variation Policy

  8. Do not use multiple load generators. Good practice should be to keep only the local one.
  9. Verify that NeoLoad Web data transfer is properly configured on the Controller preferences (see Preferences / General settings / NeoLoad Web).

    NeoLoad Web Preferences

  10. Verify to have a license with "Integration & Advanced Usage".

    License with Integration & Advanced Usage

Dynatrace Set-up

On the Dynatrace interface

  1. Create (or retrieve) a Dynatrace API key from menu Settings/Intregration/Dynatrace API.

    Dynatrace API key

  2. Search for the application being tested.

    Dynatrace Application

  3. Apply a tag on the application being tested.

    Dynatrace Tag

Parameters for Dynatrace Events

Name Description
dynatraceId Identifier of your Dynatrace environment:
  • for live environment, identifier part of URL http://<identifier>.live.dynatrace.com (for example identifier is pk12475 for URL https://pk12475.live.dynatrace.com)
  • for managed environment, identifier is a UUID (Universal Unique Identifier), for example 123e4567-e89b-12d3-a456-426655440000
dynatraceApiKey API key of your Dynatrace account
tags (optional) Dynatrace tags. Links the NeoLoad computed data to Dynatrace tags (format: tag1,tag2)
proxyName (Optional) The NeoLoad proxy name to access Dynatrace
dynatraceManagedHostname (Optional)
  • for managed environment, it is the hostname of your managed Dynatrace environment (for example preprod.neotys.com, do not include neither protocol nor API path)
  • for live environment, this parameter should be removed

Parameters for Dynatrace Monitoring

Tip: Get NeoLoad API information in NeoLoad preferences: Project Preferences / REST API.

Name Description
dynatraceId Identifier of your Dynatrace environment:
  • for live environment, identifier part of URL http://<identifier>.live.dynatrace.com (for example identifier is pk12475 for URL https://pk12475.live.dynatrace.com)
  • for managed environment, identifier is a UUID (Universal Unique Identifier), for example 123e4567-e89b-12d3-a456-426655440000
dynatraceApiKey API key of your dynatrace account
tags (optional) Dynatrace tags. Links the NeoLoad computed data to Dynatrace tags (format: tag1,tag2)
dynatraceManagedHostname (Optional)
  • for managed environment, it is the hostname of your managed Dynatrace environment (for example preprod.neotys.com, do not include neither protocol nor API path)
  • for live environment, this parameter should be removed
dataExchangeApiUrl (Optional) Where the DataExchange server is located. Optional, by default it is: http://${NL-ControllerIp}:7400/DataExchange/v1/Service.svc/
dataExchangeApiKey (Optional) API key of the DataExchange API
proxyName (Optional) The name of the NeoLoad proxy to access to Dynatrace

Analyze results in NeoLoad

All the metrics retrieved from Dynatrace are available on the NeoLoad Controller (live during the test, and after the test is executed), in the External Data tab.

NeoLoad Graphs External Data

Analyze results in Dynatrace

  1. Find NeoLoad in Technologies.

    Click on Group details:

    Technologies

    Click on NeoLoad Data:

    NeoLoad Technology

  2. Analyze NeoLoad metrics.

    Analyze all the NeoLoad metrics sent:

    NeoLoad Data

  3. Consult NeoLoad events on the tested application.

    Dynatrace consult NeoLoad Event

Check User Path

This bundle does not work with the Check User Path mode. A Bad context error should be raised.

Status Codes

  • Dynatrace event
    • NL-DYNATRACE_EVENT_ACTION-01: Could not parse arguments
    • NL-DYNATRACE_EVENT_ACTION-02: Technical Error
    • NL-DYNATRACE_EVENT_ACTION-03: Bad context
  • Dynatrace monitoring
    • NL-DYNATRACE_MONITORING_ACTION-01: Could not parse arguments
    • NL-DYNATRACE_MONITORING_ACTION-02: Technical Error
    • NL-DYNATRACE_MONITORING_ACTION-03: Bad context

Experimental Features

Learn more about the experimental features in the 'develop' branch: DynatraceConfiguration, DynatraceSetAnomalieDetection, DynatraceDeleteAnomalieDetection, DynatraceSanityCheck.