Bits and pieces about free software and various other things.

Thursday, September 22, 2011

Introducing Gigger, a Realtime Javascript Monitoring Framework

(originally posted here)


Monitoring your web application is essential for professional maintenance and development. Especially if you have a high load on your website and you want to keep the current users on your site, you definitely should stay alert for problems and be able to react fast in case of problems. Monitoring is also crucial for A/B tests, since you have to evaluate somehow which version of your website performs better. Many big players also measure constantly how much revenue the website produces. For them it is important to monitor if a new feature increases or decreases the revenue and take decisions based on that information.


Mayflower is currently developing a javascript framework which provides a smart tool for realtime monitoring and measuring. Read the full article for more information.

Monitoring your web application is essential for professional maintenance and development. Especially if you have a high load on your website and you want to keep the current users on your site, you definitely should stay alert for problems and be able to react fast in case of problems. Monitoring is also crucial for A/B tests, since you have to evaluate somehow which version of your website performs better. Many big players also measure constantly how much revenue the website produces. For them it is important to monitor if a new feature increases or decreases the revenue and take decisions based on that information.


The time it takes to get your monitoring results is crucial for many web applications. If reports reach you after one hour or even a day, its almost impossible to react on potential problems in time. Gigger allows you to monitor your web application in realtime. Everything you want to track in the web application is transmitted to the monitor in realtime where it can be processed and visualized.


Most of current monitoring solutions focus on page loads and backend monitoring, but times change: Nowadays more and more web applications are single page websites. This makes the old approach difficult, since the only page load happens in the beginning, afterwards everything is loaded dynamically. Gigger solves this and brings the monitoring task to the javascript and thus to the browser. It allows you to monitor what is going on in the browser that runs the web application. Using gigger you can monitor the web application closely and find out about potential problems users run into.


From a technical point of view, gigger uses Faye to establish a publish/subscribe connection between the browsers where the web application runs and the monitor (which also runs in the browser). With gigger you can specify in the monitor, what should be monitored. The monitor transmits the requests to the web application and the web application hooks into the desired events and notifies the monitor when something happened. Since this approach is not perfect and only allows you to monitor simple things (DOM events), gigger also has an API on the web application side to manually emit signals. This requires some synchronization between the monitor and the web application, it only makes sense if the monitor is listening on the right channels where the web application emits its custom signal. Through this API you have the full flexibility to measure and monitor whatever you want. You could for example measure how long it takes for your ajax requests to return and calculate a mean ajax request time from a browser point of view.


We currently have a monitor running, which monitors simple events on blog.mayflower.de, you can find the monitor on gigger.mayflower.de/monitor.html. We are currently measuring how many hits the blog gets every minute and which topics are hot. There is also a log view which shows a new entry when someone hits the page and also when someone clicks on a link.



DISCLAIMER: It's pre alpha! Don't expect it to be perfect. The project is in a very early stage, this is the first live test and it could happen that there are some problems with the service. It was tested with Firefox and Chrome.

0 comments:

Blog Archive


View My Stats