This topic explains how to use performance profiles in order to achieve very specific control over the performance of virtual assets.
Performance profiles can be used to achieve very specific control over the performance of virtual assets. The performance of each virtual asset can be set to reflect the dependent application’s actual performance or to simulate specific performance models that you want to test against. For example, you might want to simulate fixed response delays and response delay ranges—or delays that are dependent on the hit per second rate that the application is under. For the load dependent delays, you can utilize linear or exponential response template models; you can also create custom performance profile models using scripts. Additionally, when external applications are being monitored by an APM tool, you can import APM performance data into a profile.
Using performance profiles enables you to see how your AUT responds when dependencies exhibit a range of different performance conditions. For instance, you can:
Performance configurations (including performance profiles and performance groups) can be defined for each responder suite. Once a Virtual Asset is deployed on a Virtualize Server, you can map performance profiles to performance groups “on-the-fly” from either the Virtualize Server view or from CTP.
For example, assume that:
You assigned the responders in the Virtualize responder suite to two performance groups (Search Inventory Group and Place Order Group) based on the expected performance of the application you are emulating.
In this case, you would set up the associated virtual asset by mapping the performance profiles to performance groups in order to emulate the two deployment scenarios:
|Emulation Scenario||Search Inventory Performance Group||Place Order Performance Group|
|Internal Deployment||Load Dependent Exponential Performance Profile||Fixed Delay Performance Profile|
|Cloud Deployment||Load Dependent Linear Performance Profile||Fast Fixed Delay Performance Profile|
For each responder suite, you can define:
Each performance profile defines a specific load pattern that can be applied in the associated responder suite. You can define any number of performance profiles.
To add a performance profile:
When you’re done defining performance profiles, save the updated responder suite.
For a fixed response delay:
Range delays allows you to specify the Minimum and Maximum delay range bounds. The actual delays will be uniformly distributed within the specified range.
For a range delay:
For a load dependent response delay:
Note that for all Hits Per Second (HPS) values that are greater than what is specified in the graph, the Response Delay value of the right-most graph point will be used. For instance, if the right-most key on the graph is 1500 milliseconds at 10 HPS (as in the graphic for step 3 above), all HPS rates greater than 10 HPS will use the 1500 millisecond response delay.
You can script the behavior of a performance profile. The scripting method should have the following characteristics:
For more details on scripting, see Extensibility and Scripting Basics.
Note that Performance Profile delay is added to the responder processing time. In most cases, the actual response time will exceed the Performance Profile response delay by the time of the “zero delay” response.
In addition any "think time" or "response time" delay specified at the responder level will be added to the Performance Profile delay.
See Importing Performance Profiles from Application Performance Management (APM) Systems.
Responders that can share a single performance profile should be aggregated into a specific performance group. When the associated virtual asset is deployed, you (or your team members) will be able to map which performance profiles t.o apply to which performance groups.
You can create any number of performance groups. Each responder can be included in no more than one performance group (i.e., a single responder cannot be used across multiple performance groups).
To define a performance group:
When you’re done defining performance groups, save the updated responder suite.
Once performance profiles and performance groups are set, you can apply them to virtual assets "on-the-fly" from either the Virtualize Server view or from CTP. This lets you quickly set and change the virtual asset’s performance conditions.
From the Virtualize Server view, you can apply a performance configuration to a virtual asset as follows:
Think times or delays configured elsewhere will be added to the delays specified in performance profiles. Think Times can be configured at:
Application Performance Management (APM) systems provide tools for monitoring and managing application performance and availability. APM systems collect performance data for the applications they monitor; Virtualize Performance Profile Importers can query APM systems for performance data and create performance profiles based on the performance metrics of the monitored applications.
To query an APM system for available performance metrics and import selected metrics as performance profiles:
_Fixedsuffix to the names of the imported performance profiles.
_Rangesuffix to the names of the imported performance profiles.
AppDynamics-specific query parameters:
|username||AppDynamics account user name.|
|password||AppDynamics account password.|
|host||Host name where AppDynamics Controller is installed.|
|port||Port on which the AppDynamics Controller is listening for REST requests. This is the same port that is used to access the AppDynamics Web Interface.|
|tier||Tier name as configured in AppDynamics.|
Set * to see all transactions under the selected Application and Tier.
Set to the transaction name (as it appears under the Business Transactions Performance> Business Transactions node in the AppDynamics Metric Browser tree) to filter by individual transaction.
|timeIntervalMinutes||Time interval in minutes used to calculate performance metrics.|
The AppDynamics Performance Profile Importer queries AppDynamics for performance data available in the Analyze> Metric Browser node of application’s configuration and data tree. In the AppDynamics Metric Tree view, this data is displayed under the Business Transaction Performance> Business Transactions> YourTier node and then under the
Average Response Time metric node.
dynaTrace-specific query parameters:
|username||dynaTrace account user name.|
|password||dynaTrace account password.|
|host||Host on which dynaTrace Client is installed.|
|port||Port on which dynaTrace Client is installed. Default – 8020.|
|dashboard||Dashboard name as it is configured in dynaTrace Client.|
Set to “*” to see all web service methods and web request URIs in the dashboard.
Set to the web services method name or Web request URI to filter by individual transaction.
The dynaTrace Performance Profile Importer queries the Web Services and Web Requests dashlets of a selected dashboard inside dynaTrace Client for Web Services methods and Web requests performance data.
You must include either the Web Services or Web Requests dashlets—or both—into the dashboard you specified in the query parameters.
Make sure that the Total Avg/Min/Max columns of the Web Services or Web Requests dashlets are displayed. If they are, the column data will be available for the Performance Profile importer in the REST queries.
The default values which appear in the Query Properties table of the Import dialog can be customized by modifying the appropriate Performance Profile Importer deployment descriptor files. These files are located in the apm-integration/performance-profile-importers folder or the root directory (<virtualize_install_dir>/eclipse/plugins/com.parasoft.xtest.libs.web_<version>/root).
Modify the value attributes of the AppDynamics.xml and dynaTrace.xml Performance Profile Importer deployment descriptors as you see appropriate for your environment.
<performance-profile-importer name='AppDynamics' class="com.parasoft.profiles.apm.common.appdynamics.AppDynamicsPerformanceProfileImporter"> <!-- AppDynamics 3.8.2 --> <property name='username' value='[email protected]'/> <property name='password' type='masked' value='admin'/> <property name='host' value='myhost.mycompany.com'/> <property name='port' type='int' value='8090'/> <property name='application' value='MyApplication'/> <property name='tier' value='MyTier'/> <property name='transaction' value='*'/> <property name='timeIntervalMinutes' type='int' value='4320'/> </performance-profile-importer>