Site tracking and analytics storage
- node.js v0.1.96
git clone git://github.com/mnutt/hummingbird.git cd hummingbird # Update submodules git submodule update --init --recursive # build the native mongo db driver cd deps/node-mongodb-native; make # Copy the default configuration file cp config/app.json.sample config/app.json
To start the analytics server, run the following:
mongod & (or start mongo some other way) node server.js
By default a dashboard will be run on port 8080. You can disable it for production use in config/app.json. The dashboard is just html served out of public/; you can serve it using any webserver.
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.
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/all.js. An example of how a metric can filter based on urls is in lib/metric/sales.js.
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)