Crate tacho [] [src]

A thread-safe, Future-aware metrics library.

Many programs need to information about runtime performance: the number of requests served, a distribution of request latency, the number of failures, the number of loop iterations, etc. tacho allows application code to record runtime information to a central Aggregator that merges data into a Report.

Performance

We found that the default (cryptographic) Hash algorithm adds a significant performance penalty. So the non-cryptographic RandomXxHashBuilder algorithm is used by Reporter and Sample.

Labels are stored in a BTreeMap, because they are used as keys in the Report's HashMap (and so we need to be able to derive Hash on the set of labels).

At times, metric keys must be cloned---specifically, when creating a new entry in a Sample or Report.

Modules

prometheus

Structs

Aggregator

Cooperatively aggregates Samples into a Report.

CounterKey
GaugeKey
Metrics
Recorder

Records a batch of metrics to be sent to the Aggregator.

RecorderFactory

Produce reusable keys with the receiver's labels. These keys are to be passed to a short-lived Recorder in order to report metrics to the Aggregator.

Report

Stores aggregated metrics.

Sample

Stores the results from a a Record instance.

Scope

Scopes stats production.

StatKey

Describes a key whose values will be histogramed.

Tacho

A metrics pipeline.

Traits

MetricKey
Timing