Trait cadence::MetricSink

source ·
pub trait MetricSink {
    // Required method
    fn emit(&self, metric: &str) -> Result<usize>;

    // Provided method
    fn flush(&self) -> Result<()> { ... }
}
Expand description

Trait for various backends that send Statsd metrics somewhere.

The metric string will be in the canonical format to be sent to a Statsd server. The metric string will not include a trailing newline. Examples of each supported metric type are given below.

Counter

some.counter:123|c

Timer

some.timer:456|ms

Gauge

some.gauge:5|g

Meter

some.meter:8|m

Histogram

some.histogram:4|h

Set

some.set:2|s

Distribution

some.distribution:2|d

See the Statsd spec for more information.

Required Methods§

source

fn emit(&self, metric: &str) -> Result<usize>

Send the Statsd metric using this sink and return the number of bytes written or an I/O error.

Note that implementations may return 0 bytes if the metric is not immediately written (such as when it is buffered). Callers should NOT interpret this as an error.

Provided Methods§

source

fn flush(&self) -> Result<()>

Flush any currently buffered metrics to the underlying backend, returning an I/O error if they could not be written for some reason.

Note that not all sinks buffer metrics and so the default implementation of this method does nothing.

Implementors§