Links

Metrics: library to measure behavior of critical components

Metrics is a Java library which gives you unparalleled insight into what your code does in production. Developed by Yammer to instrument their JVM-based backend services, Metrics provides a powerful toolkit of ways to measure the behavior of critical components in your production environment. With modules for common libraries like Guice, Jetty, Log4j, Apache HttpClient, Ehcache, Logback and reporting backends like Ganglia and Graphite, Metrics provides you with full-stack visibility.

Homepage:
http://metrics.codahale.com/

Getting started and Manual:
http://metrics.codahale.com/getting-started.html

Sourcecode:
https://github.com/codahale/metrics

Filed under  //   asl   java   jmx   library   metrics   monitoring   opensource  
Posted February 2, 2012 by email 

Metrics: Capturing JVM- and application-level metrics

Capturing JVM- and application-level metrics. So you know what's going on.

Metrics comes with five types of metrics:

* Gauges are instantaneous readings of values (e.g., a queue depth).
* Counters are 64-bit integers which can be incremented or decremented.
* Meters are increment-only counters which keep track of the rate of events. They provide mean rates, plus exponentially-weighted moving averages which use the same formula that the UNIX 1-, 5-, and 15-minute load averages use.
* Histograms capture distribution measurements about a metric: the count, maximum, minimum, mean, standard deviation, median, 75th percentile, 95th percentile, 98th percentile, 99th percentile, and 99.9th percentile of the recorded values. (They do so using a method called reservoir sampling which allows them to efficiently keep a small, statistically representative sample of all the measurements.)
* Timers record the duration as well as the rate of events. In addition to the rate information that meters provide, timers also provide the same metrics as histograms about the recorded durations. (The samples that timers keep in order to calculate percentiles and such are biased towards more recent data, since you probably care more about how your application is doing now as opposed to how it's done historically.)

Metrics also has support for health checks

Code:
https://github.com/codahale/metrics


Presentation:
http://codahale.com/codeconf-2011-04-09-metrics-metrics-everywhere.pdf

Filed under  //   java   jvm   metrics   monitoring   scala  
Posted April 11, 2011 by email 

Hummingbird: Site tracking and analytics storage

Hummingbird lets you see how visitors are interacting with your website in real time.

And by “real time” we don’t mean it refreshes every 5 minutes—WebSockets enable Hummingbird to update 20 times per second.

Hummingbird is built on top of Node.js, a new javascript web toolkit that can handle large amounts of traffic and many concurrent users.

Hummingbird is organized into two parts: a node.js-based tracking server that records user activity via a tracking pixel, and a collection of javascript-based widgets that display that activity. The server records all activity in MongoDB and broadcasts it to the clients using WebSockets if possible, and falling back to Flash sockets if necessary.

The Hummingbird.WebSocket object receives websocket events from the server in the form of JSON objects. Individual widgets subscribe to a property in the JSON tree and register handler functions to be called whenever that property is present.

Image001

Project: http://projects.nuttnet.net/hummingbird/

Code: https://github.com/mnutt/hummingbird

Demo: http://demo.hummingbirdstats.com/

Filed under  //   javascript   metrics   mongodb   monitoring   node   realtime   web  
Posted February 24, 2011 by email