Site tracking and analytics storage
- node.js v0.8.0
git clone git://github.com/mnutt/hummingbird.git cd hummingbird # Use npm to install the dependencies npm install # To use the map, download MaxMind's GeoIP database and extract to the root directory: wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip GeoLiteCity.dat.gz
To start the analytics server, run the following:
By default a dashboard will be run on port 8080. You can disable it for production use in config/config.js. The dashboard is just html served out of public/; you can serve it using any webserver.
Make sure to properly secure the dashboard if you don't want outside people to see it. This typically means putting the dashboard behind nginx or apache using basic auth. The dashboard's 'listen' function takes a second argument that is the interface to bind; typically you would choose "127.0.0.1" to only allow access from localhost, or "0.0.0.0" to listen on all interfaces. You should then run the tracking pixel on a different port so that it is accessible to the outside world.
The Hummingbird.WebSocket object receives websocket events from the server in the form of JSON objects. Individual widgets subscribe to a metric and register handler functions to be called whenever that metric is present.
Metrics are stored in lib/metrics and auto-loaded. Each metric contains a handler function that is
called every time a new user event occurs. Metrics store data in the
data object property which
gets emitted to clients in intervals specified by the metric. A basic example can be found in
lib/metrics/total_views.js. An example of how a metric can filter based on query params is in
Hummingbird comes with some stock widgets (Counter, Logger, Graph) that demonstrate how to hook into the data provided by the node.js server. For the minimum amount required to create a widget, see public/js/widgets/logger.js. A widget is an object whose prototype extends Hummingbird.Base and implements onMessage.
sudo gem install jspec jspec run --node
- To run the UI locally but stream data from your production server, use the url http://localhost:8080/?ws_server=your-host.com&ws_port=12345
Hummingbird is licensed under the MIT License. (See LICENSE)