a streaming parser for the statsd protocol
- install npm
npm install statsd-parser
var statsd_parser = require('statsd-parser');
var statsd_parser = require("statsd-parser")
, parser = statsd_parser.parser()
;
parser.onerror = function (e) {
// an error happened. e is the error
};
parser.onstat = function (txt, obj) {
// got some value
};
parser.onend = function () {
// parser stream is done, and ready to have more stuff written to it.
};
parser.write('foo.bar:1|c').close();
//
// stream usage
// takes the same options as the parser
//
var stream = require("statsd-parser").createStream(options);
stream.on("error", function (e) {
// unhandled errors will throw, since this is a proper node
// event emitter.
console.error("error!", e);
// clear the error
this._parser.error = null;
this._parser.resume();
})
stream.on("stat", function (txt, obj) {
// same object as above
});
//
// pipe is supported, and it's readable/writable
// same chunks coming in also go out
//
fs.createReadStream("file.statsd")
.pipe(stream)
.pipe(fs.createReadStream("file-fixed.statsd"))
you also have two helper functions to see if a string is a statsd stat isStatsd
and one to check extract values from a statsd string (or null if it's not statsd)
> var statsd = require('statsd-parser');
> statsd.isStatsd('a:1|c|@0.1')
true
> statsd.matchStatsd('a:1|c|@0.1')
{ stat: 'a',
value: '1',
type: 'c',
sample_rate: '0.1' }
> statsd.matchStatsd('b:200|s')
{ stat: 'b',
value: '200',
type: 's' }
> statsd.matchStatsd('b:200|s@INVALID')
null
everyone is welcome to contribute. patches, bug-fixes, new features
- create an issue so the community can comment on your idea
- fork
statsd-parser
- create a new branch
git checkout -b my_branch
- create tests for the changes you made
- make sure you pass both existing and newly inserted tests
- commit your changes
- push to your branch
git push origin my_branch
- create an pull request
- code:
git clone git://github.com/dscape/statsd-parser.git
- home: http://github.com/dscape/statsd-parser
- bugs: http://github.com/dscape/statsd-parser/issues
(oO)--',-
in caos