Homer is a statsd-compatible stats aggregator written in Rust. I'm basing this implementation on github's statsd implementation brubeck.
To write something in Rust. I've been reading statsd related code lately, especially a C-implementation, and I'd like to see whether I can make it shorter and easier to understand for my usecase.
- configuration loading
- statsd
- receive packets via UDP
- basic packet parsing (no support for sampling rates)
- performance (recvmmsg, multi thread)
- aggregation
- counter
- gauge
- timer
- sets (maybe later)
- carbon
- plain text protocol
- periodic flushing
- pickle protocol (maybe later)
- logging
- proper error handling
Get the nightly rust compiler in version 1.36.0 and run cargo run
.
Configuration is possible by editing the config.toml
in the working
directory.