Revision control
Copy as Markdown
Other Tools
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
use crate::{CounterMetric, ErrorType};
/// A description for the [`DualLabeledCounterMetric`](crate::metrics::DualLabeledCounterMetric) type.
///
/// When changing this trait, make sure all the operations are
/// implemented in the related type in `../metrics/`.
pub trait DualLabeledCounter {
/// Gets a specific counter for a given key/category pair.
///
/// If a set of acceptable keys or categorires were specified in the `metrics.yaml` file,
/// and the given label is not in the set, it will be recorded under the special `OTHER_LABEL` label.
///
/// If a set of acceptable keys and/or categories was not specified in the `metrics.yaml` file,
/// only the first 16 unique labels will be used.
/// After that, any additional labels will be recorded under the special `OTHER_LABEL` label.
///
/// Labels must have a maximum of 111 characters, and may comprise any printable ASCII characters.
/// If an invalid label is used, the metric will be recorded in the special `OTHER_LABEL` label.
fn get(&self, key: &str, category: &str) -> CounterMetric;
/// **Exported for test purposes.**
///
/// Gets the number of recorded errors for the given metric and error type.
///
/// # Arguments
///
/// * `error` - The type of error
///
/// # Returns
///
/// The number of errors reported.
fn test_get_num_recorded_errors(&self, error: ErrorType) -> i32;
}