cadence 1.3.0

An extensible Statsd client for Rust
Documentation
use cadence::prelude::*;
use cadence::{NopMetricSink, QueuingMetricSink, StatsdClient};
use utils::InstrumentedAllocator;

mod utils;

#[global_allocator]
static GLOBAL: InstrumentedAllocator = InstrumentedAllocator::new();

#[test]
fn test_allocs_statsdclient_nop_queuing_with_tags() {
    let client = StatsdClient::from_sink("alloc.test", QueuingMetricSink::from(NopMetricSink));

    // one initial metric while we're not recording to make sure any one-time costs don't
    // count towards what we measure (seems like the channels used by the queuing sink do
    // some lazy setup that results in about 1kb of allocation).
    client.incr("foo").unwrap();

    GLOBAL.enable();
    client.incr_with_tags("bar").with_tag("x", "y").send();
    GLOBAL.disable();

    let num_allocs = GLOBAL.num_allocs();
    assert_eq!(3, num_allocs)
}