Yet another implementation of the kollekt service (origin by Paul Asmuth).
Collect statistical data without handling them in the corresponding app itself.
Using UDP for a fire-and-forget mechanism (if we loose some packets we don't care).
Using Erlang to reduce the packet drops as much as possible (because Erlang has message inboxes for every process).
Building a distributed collector app, so the overlying production app servers do not need to communicate to one single collect service. And the distributed system will give fault-tolerance by sharing collected data across the node cluster.
Can be send as following:
or as concatenated list:
Delimiters can be changed in
Take care, which delimiters you want to use, they must not occur in the bucket or value data!
Install Erlang (I build with R15B).
in development, everything can (and will) change, stay tuned …
- OTP'fied where possible and reasonable
- statistical output on console
- app handles incoming buckets, collects data and let buckets die when needed
- when buckets die they should export their bucket data to a storage (files, DB, …)
- exports rules (time based, size based, …)
- distributable (running on different nodes)
- using Mnesia as a first level storage (a dedicated process can then export to further targets based on rules)