I'm looking to do some performance tuning based on what I am seeing in New Relic's RUM output, but I need to understand the following first.
I have a page that loads up a KendoUI grid. The grid is configured to load it's data asynchronously. So the page loads and the user gets to see the grid layout. In a few milliseconds the grid displays the "loading" graphic, while it then waits for the async request for the data, which comes back as Json, following which the "loading" graphic is replaced with actual data.
I need to understand if this async loading of the data for the grid (or any other $.ajax() request for that matter) in any way affects New Relic's RUM output?
Specifically, the RUM is reporting a certain time for DOM Processing, and a certain time for Page Rendering. In which one of those two numbers will the async request be reported (if at all)?
In general, if anything happens after the Load() event, then the New Relic RUM (Real User Monitoring) will not capture this activity.
For example, if you take a look at your network (or waterfall) view in a browser you can see exactly when this Load event fires and when your resources are loaded in the context of this event.
Most likely, your async assets will (and should) be gathered after this Load() event and will not be included in RUM metrics. This blog article has a nice breakdown of how to tune this type of metric (and how New Relic has in the past).
"The RUM timer stops when the browser has rendered and the user is able to interact with the page. ... It’s up to you to decide what that means, and adjust your ... code accordingly." http://blog.newrelic.com/2012/05/10/how-we-tune-our-own-app-using-rum-data/
We are also investigating adding support for Ajax instrumentation so you can get additional visibility into this activity.