hourglass

hourglass is a front end JavaScript performance monitoring tool. It gives you
a time and timeEnd api for measuring how long things take, similar to the
Chrome console API. It aggregates these times and POSTs them to a server, where
you make magic happen with them.

AN EXAMPLE

var hourglass =newHourglass({

url:'http://where.to.send.metrics.example.com'

aggregationInterval:10000

})

functionsomeLongRunningThing(){

hourglass.time('longRunningThing')

someAsyncOperation(function(){

hourglass.timeEnd('longRunningThing')

})

}

Now every 10 seconds, hourglass will POST any metrics that were timeEnded
to the url.

Metric Format

They get POSTed as JSON with this format:

{

"timestamp": 123455434, // timestamp the metrics were posted

"metrics": {

"metricName": [10, 20, 500, 10], // arrays of times in millesecond between `time` and `timeEnd`.

"metricName2": [12312, 1234, 5959]

}

}

API

new Hourglass(opts)

Create a new instance of Hourglass. opts is a hash of options

url - the URL to POST metrics to. This is the only required option. The
constructor will throw an error if you don't provide a url.

aggregationInterval - the number of milliseconds to wait between POSTing
metrics to url. Defaults to 60000