Trackable (W.I.P)
Purpose
A simple, modular node.js module for distributed app usage tracking.
The interface leverages the global process.EventEmitter to simplify implementations and to reduce the risk of side-effects caused by tracking. You can safely disable or completly remove the tracker, without the need to remove the code using it.
It comes with a Memory, CouchDB & Remote "receiver".
Current status
This module is not battle-proven yet and to be considered as alpha.
Features
- Distributable (Send events from one tracker instance to another over the network)
- Modular (write your own event store/receiver!)
- Comes with an Express Middleware
Example
Local example
1. Start a server like this:
var trackable = repl = http = ; var tracker = eventName: 'trackable' verbose: true emitDefaultKeys: true; http; replstart prompt: "REPL> " input: processstdin output: processstdoutcontextevents = trackerreceiverstore;
http://youip:8000/ and see events arrive :-)
2. VisitTracker Event received: type: 'pageview_home' ip: '127.0.0.1' time: 1360188808356 Tracker eventCount: 1Tracker receiverErrorCount: 0REPL> console; type: 'pageview_home' ip: '127.0.0.1' time: 1360188808356
Distributed example
API
var tracker = eventName: 'trackable' verbose: false emitDefaultKeys: true receive: port: 8000 receiver: verifyEmit = false;
Receivers
Memory
CouchDB
Remote
Changelog
v0.0.2
Added express middleware
v0.0.1
Initial commit
TODO
- Test what happens if you modify event object after emitting.
- Implement (de-)fragmentation of large udp packets (remote sender/receiver).
- Write documentation for trackable.Tracker() options
License
Trackable is licensed under the MIT license.
Credits
- Commit code and get featured here ;-)