hotmic
hotmic is a high-speed metrics collection library, based on crossbeam-channel. It is heavily inspired by tic.
code of conduct
NOTE: All conversations and contributions to this project shall adhere to the Code of Conduct.
usage
The API documentation of this library can be found at docs.rs/hotmic.
general features
- based on
crossbeam-channel
, so it's blazingly fast - supports counters, gauges, and histograms
- provides dynamic faceting: what portion of metric data should be recorded, and in what way
- control mechanism to allow any caller to retrieve metric snapshots at any time
- scoped metrics (one metric with different prefixes)
performance
This section used to have way higher numbers, and a full comparison vs tic
, but based on recent refactoring, the numbers are off. Here's a quick look at the current performance of hotmic
:
# RUST_LOG=debug target/release/examples/benchmark --duration 30 --producers 1 --capacity 4096
[2019-01-20T00:49:06Z INFO benchmark] rate: 4991107.330041891 samples per second
[2019-01-20T00:49:06Z INFO benchmark] latency (ns): p50: 389 p90: 422 p99: 520 p999: 783 max: 2077695
[2019-01-20T00:49:07Z INFO benchmark] total metrics pushed: 296547696
The latency values are measured from the perspective of the thread sending into the metric sink. This section will contain better data -- including visual aids! -- in the near future.