The following sections are intended to help you troubleshoot problems with browser snapshots.

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 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 Browser RUM 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 Browser Monitoring. 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 Verifying that the JavaScript Agent for Browser RUM was injected and Automatic Injection of the JavaScript Agent. 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.

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.

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 using older agents and controllers (3.8 and before), you need to inject the JavaScript footer for Browser RUM 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.

No Correlation between Cross Domain AJAX Requests and Business Transactions

Your JavaScript Agent may not be able to correlate Ajax requests with business transactions because browsers restrict access to certain HTTP response headers. Your application, however, can explicitly give browsers access to HTTP headers by sending the HTTP response header Access-Control-Expose-Headers with a list of the headers that you want the JavaScript Agent to access. 

The process of correlating cross-domain Ajax requests and business transactions consists of the following two steps:

  1. Set the agent, tier, or application node property always-add-eum-metadata-in-http-headers to true. If this property doesn't exist, you need to add and register it as described in Add a Registered Node Property.

  2. Modify the application code, so that the returned response header includes the field Access-Control-Expose-Headers as shown below: