hotmic

Crates.iohotmic
lib.rshotmic
version0.8.2
sourcesrc
created_at2018-07-18 03:42:35.992839
updated_at2019-03-20 03:48:12.733925
descriptionhigh-speed metrics collection library
homepagehttps://github.com/nuclearfurnace/hotmic
repositoryhttps://github.com/nuclearfurnace/hotmic
max_upload_size
id74823
size75,992
Toby Lawrence (tobz)

documentation

https://docs.rs/hotmic

README

hotmic

conduct-badge travis-badge downloads-badge release-badge docs-badge libraries-io-badge cargo-make-badge license-badge

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.

Commit count: 78

cargo fmt