6 tips on how to monitor your html/javascript app

Apr 30

6 tips on how to monitor your html/javascript app

Use Google Chrome Developer console…:)…now if you can’t (e.g. you don’t have access to your end-user’s browser), you need to build your own monitoring technology and monitor every browser event, javascript, static content, network traffic, and do the same on the server side and correlate all these..and do that for each and every technology type and version…!!

or you are already there, but facing some of these issues?: impact on the user experience of the monitored application, significant network traffic, lack of precision/insights on the actual user issue….??

We aren’t going to disclose all of our own monitoring capability (it is our IP after all..) but want to share some common practices on how to monitor in real-time, the browser-specific insights that help understand the root-cause of javascript execution issue:

1. Performance API to collect resource URLs… (rather than scanning and tracking changes to the DOM for them)
2. DOM only when it makes sense
3. Assess/Reduce the impact (response, memory and network traffic). Here is an idea of how much data is stored within germainAPM database while monitoring an eCommerce site that has 1000 concurrent users and depending on how heavily these users browse the eCommerce site:

4. Asynchronous Transaction as much as possible
5. Away from the Main Thread whenever possible
6. And focus on providing metrics that will help your developers understand and fix issues, such as:

Breakdown the user click response to understand how much time is spent on the browser, network, infrastructure and application.
i.e. collect in real-time: User Click, Move, Page response time are broken down and includes the following:
 Network Time/Server Time (code analysis)/Database time(sql, etc)
 Scripting time
 Rendering & Painting time
 Waiting on User input
 Other time

Then deep dive within the transaction, at the browser, network, application code, integration and database sql (…) levels

at the java/jvm process and code level:

or within the .net/clr process,…:

or within your heavily customized CRM or ERP applications and the transactions that got executed: