From fe5fa9a34b97e96464a419f1bf9076c8531364d9 Mon Sep 17 00:00:00 2001 From: Toby Lawrence Date: Sun, 16 May 2021 10:39:39 -0400 Subject: [PATCH] cleanup --- metrics-util/Cargo.toml | 3 +-- metrics-util/src/layers/mod.rs | 3 ++- metrics-util/src/layers/router.rs | 9 ++------- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/metrics-util/Cargo.toml b/metrics-util/Cargo.toml index 7b57ae03..79ec2630 100644 --- a/metrics-util/Cargo.toml +++ b/metrics-util/Cargo.toml @@ -50,7 +50,6 @@ atomic-shim = { version = "0.1", optional = true } aho-corasick = { version = "0.7", optional = true } dashmap = { version = "4", optional = true } indexmap = { version = "1.6", optional = true } -nibble_vec = { version = "0.1", optional = true } parking_lot = { version = "0.11", optional = true } quanta = { version = "0.7", optional = true } sketches-ddsketch = { version = "0.1", optional = true } @@ -87,4 +86,4 @@ default = ["std", "layer-filter", "layer-absolute", "layer-router"] std = ["atomic-shim", "crossbeam-epoch", "crossbeam-utils", "dashmap", "indexmap", "parking_lot", "quanta", "sketches-ddsketch"] layer-filter = ["aho-corasick"] layer-absolute = ["aho-corasick", "parking_lot"] -layer-router = ["radix_trie", "nibble_vec"] \ No newline at end of file +layer-router = ["radix_trie"] \ No newline at end of file diff --git a/metrics-util/src/layers/mod.rs b/metrics-util/src/layers/mod.rs index c727773e..3236f23f 100644 --- a/metrics-util/src/layers/mod.rs +++ b/metrics-util/src/layers/mod.rs @@ -122,8 +122,9 @@ pub use fanout::{Fanout, FanoutBuilder}; mod absolute; #[cfg(feature = "layer-absolute")] pub use absolute::{Absolute, AbsoluteLayer}; - +#[cfg(feature = "layer-router")] mod router; +#[cfg(feature = "layer-router")] pub use router::{Router, RouterBuilder}; /// Decorates an object by wrapping it within another type. diff --git a/metrics-util/src/layers/router.rs b/metrics-util/src/layers/router.rs index 66f83dfe..664f8670 100644 --- a/metrics-util/src/layers/router.rs +++ b/metrics-util/src/layers/router.rs @@ -23,20 +23,15 @@ impl Router { search_routes: &Trie, ) -> &dyn Recorder { // The global mask is essentially a Bloom filter of overridden route types. If it doesn't - // match our metric, we know for a fact there's no route. Use the default recorder. + // match our metric, we know for a fact there's no route and must use the default recorder. if !self.global_mask.matches(kind) { self.default.as_ref() } else { - // TODO: it'd be neat to search incrementally, like part #1 of key nameparts, then part - // #2, etc... but there's no way to do that with the exposed API. we'd need to be able - // to feed a it a slice of u8 slices or something. - // SAFETY: We derive the `idx` value that is inserted into our route maps by using the // length of `targets` itself before adding a new target. Ergo, the index is provably // populated if the `idx` has been stored. - let needle = key.name().to_string(); search_routes - .get_ancestor(needle.as_str()) + .get_ancestor(key.name()) .map(|st| unsafe { self.targets.get_unchecked(*st.value().unwrap()).as_ref() }) .unwrap_or(self.default.as_ref()) }