Struct metrics_util::layers::FilterLayer [−][src]
A layer for filtering and discarding metrics matching certain name patterns.
Uses an Aho-Corasick automaton to efficiently match a metric key against multiple patterns at once. Patterns are matched across the entire key i.e. they are matched as substrings.
If a metric key matches any of the configured patterns, it will be skipped entirely. This applies equally to metric registration and metric emission.
A number of options are exposed that control the underlying automaton, such as compilation to a DFA, or case sensitivity.
Implementations
impl FilterLayer
[src]
pub fn from_patterns<P, I>(patterns: P) -> Self where
P: IntoIterator<Item = I>,
I: AsRef<str>,
[src]
P: IntoIterator<Item = I>,
I: AsRef<str>,
Creates a FilterLayer
from an existing set of patterns.
pub fn add_pattern<P>(&mut self, pattern: P) -> &mut FilterLayer where
P: AsRef<str>,
[src]
P: AsRef<str>,
Adds a pattern to match.
pub fn case_insensitive(&mut self, case_insensitive: bool) -> &mut FilterLayer
[src]
Sets the case sensitivity used for pattern matching.
Defaults to false
i.e. searches are case sensitive.
pub fn use_dfa(&mut self, dfa: bool) -> &mut FilterLayer
[src]
Sets whether or not to internally use a deterministic finite automaton.
The main benefit to a DFA is that it can execute searches more quickly than a NFA (perhaps 2-4 times as fast). The main drawback is that the DFA uses more space and can take much longer to build.
Enabling this option does not change the time complexity for constructing the underlying Aho-Corasick automaton (which is O(p) where p is the total number of patterns being compiled). Enabling this option does however reduce the time complexity of non-overlapping searches from O(n + p) to O(n), where n is the length of the haystack.
In general, it's a good idea to enable this if you're searching a small number of fairly short patterns (~1000), or if you want the fastest possible search without regard to compilation time or space usage.
Defaults to true
.
Trait Implementations
impl Default for FilterLayer
[src]
fn default() -> FilterLayer
[src]
impl<R> Layer<R> for FilterLayer
[src]
Auto Trait Implementations
impl RefUnwindSafe for FilterLayer
[src]
impl Send for FilterLayer
[src]
impl Sync for FilterLayer
[src]
impl Unpin for FilterLayer
[src]
impl UnwindSafe for FilterLayer
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,