AppDynamics Integration

AppDynamics Integration


Silk Performer offers a plug-in framework for AppDynamics and other third-party diagnostics tools. The AppDynamics Plug-In is installed along with the Silk Performer setup. It is disabled by default.

AppDynamics focuses on monitoring performance at the Business Transaction level. Business transactions mirror end user activity and are defined as a category of user requests.

The current Silk Performer – AppDynamics integration supports automatic naming of such transactions based on Silk Performer timer names.

After successful configuration, an API call from Silk Performer such as the following:

BrowserNavigate("", "LoginPage");

Appears as the following business transaction in AppDynamics:


Configuring AppDynamics Plug-In Settings in Silk Performer

  1. From Silk Performer, select Settings > System Settings.
  2. Select the AppDynamics Plug-In group icon.
  3. On the General page, check the Enable plug-in check box.
  4. Configure name/value pairs on the Attributes page as required.
    The default Tag value is AppDynamicsTag.

    Note: A number of integration settings are dependent on the Tag attribute retaining the value AppDynamicsTag. If you change this default value, you will need to change additional settings, as explained below.

  5. Click OK to save your settings

Configuring Automatic Transaction Naming in AppDynamics

  1. In the left AppDynamics navigation pane, click Configure -> Instrumentation.
  2. Select Use Custom Configuration for this tier.
  3. Scroll down to the custom rules section of the page. 
  4. Click "+" to add a custom match rule.
  5. On the Transaction Match Criteria page, select Servlet from the drop-down list.
  6. Specify the name of the custom rule.
    The name is the first part of the generated transaction name (Silk Performer in the image below).
  7. Specify the transaction match criteria:
    • For URI select Is Not Empty
    • Select Check for parameter existence and name the parameter AppDynamicsTag, as configured in Silk Performer.

  8. Select the Split Transactions using Request Data page and check the Split Transactions using Request Data check box.
  9. In the Apply a custom expression on HTTPServletRequest and use the result in Transaction names field, add the following string:
  10. Click Save.

Verify the Integration

Go to Silk Performer and start your load test. After a few minutes, AppDynamics displays the transaction names in the Business Transactions List.

The following screenshot shows the result of a load test in Silk Performance Explorer’s Overview Report alongside the AppDynamics’ Business Transactions list. The highlighted areas indicate the timer names in Silk Performer and the matching business transactions in AppDynamics.

How Silk Performer Timers are Matched with Business Transactions

HTTP requests executed by Silk Performer’s replay engine are extended by an additional HTTP header. For example, the following API call:

BrowserFormSubmit("//FORM[@name='loginForm']", "Login");

Generates the following HTTP POST request header:

The HTTP header AppDynamicsTag (the tag attribute defined in the Silk Performer/AppDynamics plug-in configuration) contains the specified timer name NA=<TimerName>. The timer name in the above example is Login.

AppDynamics automatic transaction naming parses the HTTP header by applying the above custom expression “${getHeader(AppDynamicsTag).substring(Int/3)}” to the HTTPServletRequest object and evaluates it to the following Java code: request.getHeader(“AppDynamicsTag”).substring(3)

Note: The purpose of the substring method is to exclude the NA= portion of the HTTP header.

Requests containing the same AppDynamicsTag header are grouped into the same business transaction, so all requests with an AppDynamicsTag: NA=Login header will be grouped into the Login business transaction.

Advanced Configuration

You can change the default flags and probability values of the AppDynamics Plug-In in Silk Performer system settings.

The Flags attribute is an integer value that specifies the tag information that is to be generated. The value is a bitmask of the following options:

  • 32: HTTP header contains a unique user ID: (cross loadtest): VU=<Id>
  • 128: HTTP header contains information about the loaded document in the currently processed page. If it is a named frame then the value starts with the frame name. Following a dot (.) the page-unique document number is appended. If embedded documents are cached, this number must be be progressional: PC=<FrameName>.<DocId>
  • 256: HTTP header contains a user-unique request Id: ID=<RequestId>
  • 512 (default): If the current request is issued in a page context, the HTTP header contains the specified timer name (if omitted, the name is empty): NA=<TimerName>

For example, to enable all transaction information, specify 928 (32+128+256+512 = 928)

Note: You must adopt AppDynamics automatic transaction naming functionality to configure the additional parameters.

The Probability attribute is a floating point value between 0 and 1, specifying the percentage of virtual users that should generate the HTTP tags.



Labels (1)


Some content on Community Tips & Information pages is not officially supported by Micro Focus. Please refer to our Terms of Use for more detail.

which version of SilkPerformer this Appdynamic's plugin is available ?

It seems that this is not possible when running AppDynamics Lite, is that correct?

It would be nice, to update the description to the current plugin version 20.5

Top Contributors
Version history
Revision #:
2 of 2
Last update:
‎2020-02-14 20:14
Updated by:
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.