capella is an aysnchronous StatsD server written in Rust.
capella uses Cargo to build and test. You can also install it directly from the Crates website.
```sh
cargo install capella
cargo build --release
cargo test ```
capella uses an environment variable based configuration file named capella.env
. capella expects
this file to be in the same directory as the binary. Currently the necessary configuration values
needed are as follows:
```sh
CAPELLAGRAPHITECONNECTION=127.0.0.1:2003
CAPELLA_LISTENER=127.0.0.1:8125
CAPELLAFLUSHDURATION=10
env_logger
module.RUST_LOG=info ```
capella supports the four metrics that StatsD implements. They are counter, gauges, timers, and sets.
Counters represent metrics that can only increase. Counters can also have an associated sampling rate that tells capella that a metric is only being sent for a fraction of the time.
```sh
counter:1|c|@0.5 ```
Gauges are metrics that can fluctuate both negatively and postively. They are similar to a gauge in a car.
```sh
gauge:-1|g ```
Sets are metrics that hold a unique collection of values. The metric derived by capella for this type is the cardinality of the set.
```sh
set:11|s ```
Timers are unique in that many statistics are derived from them. Per flush duration, timers generate the following: - Minimum value - Maximum value - Count - Average - Standard Deviation - Median - 95th Percentile
Timers also support sampling.
sh
timer:1.5|ms
Currently capella is not nearly as configurable as the original StatsD. It may never be but support for the most used options will be added on an as-needed basis. capella will continue to add unit tests to increase code coverage and ensure that metrics handling is identical to StatsD. Please open issues to ask questions about adding features or to point out bugs.
capella was started by Garrett and Ralph. The name is inspired from one of Garrett's favorite bands, Rosetta.
capella is released under the MIT license.