hotmic 0.4.0

high-speed metrics collection library
Documentation

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 shameless fork of tic with some internal changes to support crossbeam-channel and to fit my needs better. This project would not be possible without 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 128
[2018-12-23T01:55:55Z INFO  benchmark] latency (ns): p50: 387 p90: 433 p99: 494 p999: 697 max: 838655
[2018-12-23T01:55:56Z INFO  benchmark] total metrics pushed: 147845436

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.

(hotmic fcc9f5c26e77a6493b83b224ba189f1824ae1a53, December 2018)

wall of recognition

Again, this project is a fork of tic, and I want to personally thank @brayniac for creating tic and for being a gracious open source contributor and steward. He has many crates you should check out -- many centered around high-performance metrics -- and I can personally attest to his graciousness in issues/PRs.

license

Per the flexible tic licensing terms, hotmic is released solely under the MIT license. (LICENSE or http://opensource.org/licenses/MIT)

Attribution information for tic can be found in the same license file.