21

I have a web application with a great deal of both client-side and server-side logic. It is considered business-critical that this application feel responsive to the end user, for some definition of "feels responsive." ;)

Most website monitoring discussions revolve around keeping an eye on server-side metrics (response time, I/O queue depth, latency, CPU load, etc.), i.e. we tend to treat server performance and responsiveness as though it's a viable "proxy" for what the user is experiencing.

Unfortunately, as we move more and more logic to client side Javascript, the correlation decreases and our server metrics become less useful.

I didn't find any good matching SO questions on this. Googling gives a range of commercial products that might be related, but they're generally from the manufacturers' websites, full of unhelpful marketspeak and "please call us for details," so it's hard to know.

Are there any commonly-used tools for this sort of thing, other than rolling your own? Both free and commercial are welcome, although free is obviously better all else being equal.

EDIT: To clarify, I primarily need to gather bulk data on the user experience, including both responsiveness and breakage/script errors. Automatic analysis is a very-nice-to-have, although I'd expect to have to occasionally dig into the data myself regardless of the solution.

David Pope
  • 6,457
  • 2
  • 35
  • 45

6 Answers6

5

There are some freely available tools for performance monitoring. Yahoo open-sourced a script they used called Boomerang which can measure page load times and other performance metrics for end-users. Full documentation here. Google analytics also offers a basic page load time report.

For error monitoring, you'll want to listen for the window.onerror event. I don't know of any scripts that will automatically log it for you, or mine the logs on the server side. If you implement your own, you'll want to be very careful about not pinging the server too often--imagine how many requests it would generate if there was a JS error in your JS error handling code!

Annie
  • 6,621
  • 22
  • 27
1

Bucky Client and Bucky Server, can perform that task :

http://github.hubspot.com/bucky/

From their website :

Open-source tool to measure the performance of your web app directly from your users' browsers.

To analyse data they advise Graphite or OpenTSDB

gpasse
  • 4,380
  • 7
  • 44
  • 75
1

You can try Atatus which provides Real User Monitoring(RUM) and Advanced error tracking for websites and web apps.

https://www.atatus.com/

Fizer Khan
  • 88,237
  • 28
  • 143
  • 153
0

http://www.whitefrost.com/documents/html/technical/dhtml/funmon.html#part1 tests the performance of javascript functions.

bigblind
  • 12,539
  • 14
  • 68
  • 123
0

You can utilize Dynatrace Ajax for measuring and profiling the performance of the JavaScript in IE and Firefox. For Chrome, they have built in tools - take a look at: http://blog.chromium.org/2011/05/chrome-developer-tools-put-javascript.html

For monitoring the performance of the overall application/site I would recommend synthetic monitoring utilizing real browsers, also known as web performance monitoring. These are services that have robotic agents sitting on Backbone ISPs performing the same activity as end users. We utilize Catchpoint, which supports Selenium scripting. But there are others like Gomez and Keynote out there that have been providing such solutions for years.

GeorgeU
  • 7,819
  • 8
  • 26
  • 38
-1

You can also check out New Relic - now it has "real user monitoring" integrated - which measures the performance across all browser types. There is a 14 day trial period so you can set it up for free and see if you like it. You'll get visibility into browser rendering speed, DOM processing, the time it spends on the network, all the way back to your app performance on the server.