AppDynamics Application Intelligence Platform

3.9.x Documentation

PDFs

Learn by Watching

Doc Maps

Skip to end of metadata
Go to start of metadata

This document will guide you through troubleshooting common issues in the setup of your Web EUEM product. But first it may be useful to visualize the end to end flow of data:

If you do not see the EUEM data that you expect, use these suggestions to try to correct the problem.

License Problems

You do not have a EUEM license key

The EUEM license is separate from the Controller license.

Call your AppDynamics sales representative or email salesops@appdynamics.com to obtain an Web EUEM license key for your AppDynamics account.

The EUEM license key is included as part of the overall license file, but the license itself is still a separate item that is provisioned separately.

Controllers cannot share an EUEM license key, but applications can.

EUEM works correctly in test environment, but problems arise on moving to Production

If you are running more than one Controller, each instance requires its own license.  Make sure you are not trying to use the same license on more than one Controller.

Web EUEM Metrics Not Reported

These steps provide a high-level overview to checking your Web EUEM setup.

1. Make sure there is load running on your app for the pages that you want to monitor for the selected time period.

Tip:  When Web EUEM discovers a new page, iframe, or Ajax call for the first time there will be a several minute delay before data for it appears in the product.

After the agent is first injected into a page by any of the injection techniques, it takes up to two or three minutes for the agent to register with the Controller. No metrics are captured during this time.

After the page is registered and traffic starts flowing, it can take an additional two or three minutes for the metrics to appear in the AppDynamics console.

In summary, the very first time the JavaScript agent accesses a page, it can take as long as 6 minutes for the metrics to appear because of the initial registration. Subsequently, the delay between an end-user click and the appearance of Web EUEM data is two to three minutes.

2. Make sure that Web EUEM is enabled for the app. Enable EUEM if it is disabled.
See Enable and Disable Web EUEM.

3. Examine the source of your web page to ensure that the pages that you want to monitor are instrumented.
See To verify that the JavaScript Agent for WebEUEM was injected.

4. Make sure there is connectivity from the browser to the EUEM cloud. See Connection Problems for information about troubleshooting connectivity.

5. Examine your instrumented application to verify that:

  • the JavaScript agent extension (adrum.ext) is loaded and its status is OK (200).
  • the EUEM beacon (adrum.gif) is loaded and its status is OK (200).
  • the ky parameter in the beacon is set to your application key.

You can use the Developer Tools for your web browser to examine your application. The Network tab shows the agent extension and status.

Tip:  Access to the Developer tools is different on different browsers.
On Chrome use View->Developer->Developer Tools.
On Safari use Develop->Show Web Inspector.
On Firefox use Tools->Web Developer.

If the adrum-ext agent extension file or the adrum-gif file from the web beacon are not present or the status is not valid, verify your EUEM configuration. See Set Up and Configure Web EUEM.

Connection Problems

If your browser cannot connect to the AppDynamics EUEM cloud and you use an on-premise Controller but not an on-premise EUEM Processor it is possible that:

  • you have no Internet connectivity
  • a firewall is blocking the port
  • the keystore does not trust the cert

To verify connectivity

Run the following command from your browser:

https://agg.eum-appdynamics.com/eumaggregator/ping

If you get a "ping" in the window, you should be able to connect to the EUEM cloud.

(info) If you are using IE on a Windows system, make sure the browser itself does not have a proxy (with authentication) set up.  If it does, the test link may work but not the actual connection.

Make sure you have also unblocked any firewalls and verified the keystore entries as described below.  If you are still having issues, contact AppDynamics Support.

Unblocking a Firewall

The controller needs to be able to use HTTP over SSL (HTTPS) on port 443 to reach the EUEM cloud aggregator at agg.eum-appdynamics.com.

If your controller is behind a firewall, you can either open your controller's firewall or use a forward proxy.

To open the firewall, see the instructions specific to your firewall.

(info)  You only need to open the firewall for the specific host and and port (agg.eum-appdynamics.com on 443), not for the entire *.eum-appdynamics.com domain.

To use a forward proxy

1. Set up an HTTP proxy to https://agg.eum-appdynamics.com.
 

(info) This is a cleartext/pass-through proxy. Authentication is not supported on the first level. If the client network itself requires authentication you must set up an intermediate proxy between your controller and this proxy to pass on the credentials you need to get out of your network.

2. Configure the HTTP proxy host and port in the <Controller-Installation-Directory>/appserver/glassfish/domains/domain1/config/domain.xml file.
See Configure Controller HTTP Proxy Settings for details about configuring the proxy.

3. Restart the controller's app server.

Verifying the Keystore Entries

You need a valid trusted cert entry for the EUEM aggregator and a private key entry for the Glassfish server instance underlying the controller.

To verify the keystore

1. Open a command prompt in the controller's glassfish directory, <AppDynamics_install_dir>/appserver/glassfish

2. Run the keytool command:

keytool -list -keystore keystore.jks

2. Enter the keystore password.
Your keystore entries are displayed.
Your keystore should include a trusted certificate entry for "agg_appdynamics" and private key entries for "EUEM_client" and  "glassfish-instance" that look something like this:

agg_appdynamics, Mar 18, 2013, trustedCertEntry,
Certificate fingerprint (MD5): 92:A7:19:E0:AF:07:C6:2E:91:6B:D6:47:5C:AD:B3:C7
glassfish-instance, Jul 11, 2012, PrivateKeyEntry,
Certificate fingerprint (MD5): BE:DE:57:FF:BC:E2:32:AA:85:4C:4C:BD:6F:BC:EC:DE

If you do not have these entries, you need to create the certificate. Contact your System Administrator or AppDynamics Support for information on how to do this.

Injection Problems

The JavaScript agent for Web EUEM must be injected into every page that you want to monitor for EUEM data.

To verify that the JavaScript Agent for Web EUEM was injected

View the source of your web page. When automatic or assisted injection is used, you should see the script for the JavaScript agent for EUEM inline in the web page. The actual version details of the script may vary, but the first few lines of the agent look like this:

When manual injection is used, you will see:

<script src="/path_to_adrum.js"/>

If the agent is not there:

1. If you used manual injection, use the normal procedures that you use to verify other types of code changes in your web pages. Keep in mind that various caches, such as the server page, CDN or browser caches, can prevent the page from actually being reloaded. If you cannot get manual injection to work, try one of the other injection schemes if they are available for your platform. See Set Up Your Application for Web EUEM for information about the various injection strategies.

2. If you used automatic injection, verify that the Enable Automatic injection of JavaScript check box is checked in the configuration. Click Configure->Instrumentation->End User Experience->Web JavaScript Instrumentation->Advanced->Advanced Instrumentation of your HTML Pages->Automatic JavaScript Injection.

Also verify that automatic injection is enabled for all of the business transactions that you want to monitor. If some of those business transactions are in the Automatic injection possible, but not enabled list, move them to the Automatic injection enabled list. If the business transaction that you want to monitor does not appear in either list, automatic injection is not possible for that business transaction.

For applications built on .NET, automatic injection is available for ASP.NET and ASPX frameworks. 

3. If you used assisted injection with injection rules for your Java application, verify that injection rules were created and that the injection rules were enabled. Click Configure->Instrumentation->End User Experience->Web JavaScript Instrumentation->Advanced->Advanced Instrumentation of your HTML Pages->Configure JavaScript Injection to see the list of rules and their enabled status. See Assisted Injection-Using Injection Rules - Java Only for information about creating and enabling injection rules.

To change an injection strategy

If you try one way to inject the JavaScript agent for Web EUEM and it does not work, it is best to undo the current injection configuration before implementing another one.

  • To undo automatic injection, clear the Enable Automatic Injection of JavaScript check box.
  • To undo manual and assisted injection using attribute injection, manually delete the JavaScript agent for Web EUEM code from your web pages.
  • To undo assisted injection using injection rules, clear the Enable check box for each injection rule in the injection rules list.

If multiple copies of the agent exist on a page, the second copy does not execute.

Some Pages Not Monitored

If only some web pages are not reporting data, first verify that those pages have been injected with the JavaScript agent for Web EUEM. See To verify that the JavaScript Agent for Web EUEM was injected.

It the agent has been injected, the page may have been excluded from monitoring by custom exclude rules, You can check and modify these rules. To access custom exclude rules for pages:

1. In the left navigation pane click Configure->Instrumentation.

2. Click the End User Experience subtab.

3. Click the Web Page Naming, Error Detection, Thresholds, etc. sub-tab.

4. Expand Configure how Pages, Ajax Requests, and iframes will be named if it is closed.

5. Scroll down to the Custom Exclude Rules list.
If there are any custom exclude rules, they are listed here.

6. To examine and/or modify a custom exclude rule select it in the list and click the Pencil icon.
If you want to remove a custom exclude rule, select it in the list and click the Minus icon.

In addition, certain pages could have been excluded by the injection configuration. This can happen when automatic injection is used with a limited set of pages enabled for injection. If you used automatic injection, check your automatic injection configuration to see if the missing pages are enabled for injection. Examine the Request Match Rules and Request Exclude Rules lists under Only enable Automatic Injection for certain Pages in the Automatic JavaScript Injection tab. See Automatic Injection. Pages can be also be bypassed by assisted injection using injection rules, when an injection rule specifies only classes and methods to be injected. If you used assisted injection with injection rules, check your injection rules. See Assisted Injection-Using Injection Rules - Java Only.

Errors Not Reported

It is possible that reporting is disabled or that certain JavaScript or Ajax errors that you would like to be reported as errors have been configured to be ignored. See Configure JavaScript and Ajax Error Detection.

If another script on your monitored pages sets the JavaScript window.onerror event, this setting can interfere with EUEM error capture. See Handle the window.onerror Event to learn how to catch those errors.

Browser Snapshot Problems

No Browser Snapshots

If you do not see any browser snapshots, it is possible that browser snapshot collection has been disabled. If periodic collection and error collection and slow collection are all disabled, the agent does not collect any browser snapshots. See Configure Browser Snapshot Collection.

Also check the thresholds for that define slow end user experience. AppDynamics collects browser snapshots only for slow-performing requests, so if the thresholds are set too high, no requests are flagged as slow. See Configure EUEM Performance Thresholds.

No Correlation between Browser Snapshots and Business Transactions

You get server-side correlation with browser snapshots only if the business transactions associated with the browser snapshot are running on application servers instrumented with AppDynamics app agents. This could explain why you do not see any or do not see all of the business transactions that you expect to see. Check which of your servers are instrumented by app agents and which are not. You may need to get more AppDynamics app agent licenses to get correlation.

If the app servers are all instrumented with AppDynamics app agents, it is possible that the business transactions that you expect to see were not injected with the JavaScript agent for Web EUEM. This can happen when automatic injection is used with a limited set of business transactions enabled for injection. If you used automatic injection, check your automatic injection configuration to see if the missing business transactions are enabled for injection. See To verify that the JavaScript Agent for WebEUEM was injected and Automatic Injection. Business transactions can also be excluded with assisted injection using injection rules, when an injection rule specifies only certain business transactions to be injected. If you used assisted injection with injection rules, check your injection rules. See Assisted Injection-Using Injection Rules - Java Only.

No Transaction Snapshots Associated with Browser Snapshots

Even if all your app servers are instrumented with AppDynamics app agents, it is possible that no associated transaction snapshots were captured at the time of the browser snapshot. For example, if no transactions were slow at the time of the browser snapshot, you probably will not see any transaction snapshots. See Transaction Snapshots for information about when transaction snapshots are captured. You can modify transaction snapshot capture. See Configure Transaction Snapshots.

On the browser side, if a browser snapshot is associated with a transaction snapshot, you will see it in the Transaction Snapshots section of the browser snapshots. See Business Transactions in Browser Snapshots. On the server side, if a transaction snapshot is associated with a browser snapshot, you will see an EUEM GUID in the ADDITIONAL DATA tab in the transaction snapshot. See Transaction Snapshots.

Not Getting Full Timing Data for Business Transactions Associated with Browser Snapshots

To ensure full business transaction timing information, you need to inject the JavaScript footer for EUEM into the footer of your web pages. Manual injection of the agent does not inject into the footer so you need to use another injection method to get this functionality.

See Getting Full Timing Data for Associated Business Transactions and Choosing Your Injection Method.

2 Comments

  1. Unknown User (eric.smith@appdynamics.com)

    This address looks incorrect (and doesn't resolve): agg.EUEM-appdynamics.com.  In prior versions this was documented as: agg.eum-appdynamics.com

  2. Unknown User (ellen.evans@appdynamics.com)

    Good catch, thanks.