Trait dipstick::MetricSink
[−]
[src]
pub trait MetricSink: Debug { type Metric: MetricKey + Debug; type Writer: MetricWriter<Self::Metric>; fn new_metric<S: AsRef<str>>(
&self,
kind: MetricKind,
name: S,
sampling: Rate
) -> Self::Metric; fn new_writer(&self) -> Self::Writer; }
Main trait of the metrics backend API. Defines a component that can be used when setting up a metrics backend stack. Intermediate sinks transform how metrics are defined and written: - Sampling - Dual - Cache Terminal sinks store or propagate metric values to other systems. - Statsd - Log - Aggregate
Associated Types
type Metric: MetricKey + Debug
Metric identifier type of this sink.
type Writer: MetricWriter<Self::Metric>
Metric writer type of this sink.
Required Methods
fn new_metric<S: AsRef<str>>(
&self,
kind: MetricKind,
name: S,
sampling: Rate
) -> Self::Metric
&self,
kind: MetricKind,
name: S,
sampling: Rate
) -> Self::Metric
Define a new sink-specific metric that can be used for writing values.
fn new_writer(&self) -> Self::Writer
Open a metric writer to write metrics to. Some sinks reuse the same writer while others allocate resources for every new writer.
Implementors
impl<C1: MetricSink, C2: MetricSink> MetricSink for DoubleSink<C1, C2> type Metric = DoubleKey<C1::Metric, C2::Metric>; type Writer = DoubleWriter<C1, C2>;
impl<C: MetricSink> MetricSink for SamplingSink<C> type Metric = SamplingKey<C::Metric>; type Writer = SamplingWriter<C>;
impl MetricSink for AggregateSink type Metric = Arc<AggregateKey>; type Writer = AggregateWrite;
impl MetricSink for StatsdSink type Metric = StatsdKey; type Writer = StatsdWriter;
impl MetricSink for LoggingSink type Metric = LoggingKey; type Writer = LoggingWriter;
impl<C: MetricSink> MetricSink for MetricCache<C> type Metric = CachedKey<C>; type Writer = CachedMetricWriter<C>;