diff --git a/pageserver/src/tenant/span.rs b/pageserver/src/tenant/span.rs index 1ee8aac31e..3728dd9dd8 100644 --- a/pageserver/src/tenant/span.rs +++ b/pageserver/src/tenant/span.rs @@ -1,24 +1,20 @@ +#[cfg(debug_assertions)] +use utils::tracing_span_assert::{check_fields_present, MultiNameExtractor}; + #[cfg(not(debug_assertions))] -#[inline] pub(crate) fn debug_assert_current_span_has_tenant_id() {} #[cfg(debug_assertions)] -pub static TENANT_ID_EXTRACTOR: once_cell::sync::Lazy< - utils::tracing_span_assert::MultiNameExtractor<2>, -> = once_cell::sync::Lazy::new(|| { - utils::tracing_span_assert::MultiNameExtractor::new("TenantId", ["tenant_id", "tenant"]) -}); +pub(crate) static TENANT_ID_EXTRACTOR: once_cell::sync::Lazy> = + once_cell::sync::Lazy::new(|| MultiNameExtractor::new("TenantId", ["tenant_id", "tenant"])); #[cfg(debug_assertions)] -#[inline] +#[track_caller] pub(crate) fn debug_assert_current_span_has_tenant_id() { - use utils::tracing_span_assert; - - match tracing_span_assert::check_fields_present([&*TENANT_ID_EXTRACTOR]) { - Ok(()) => (), - Err(missing) => panic!( + if let Err(missing) = check_fields_present([&*TENANT_ID_EXTRACTOR]) { + panic!( "missing extractors: {:?}", missing.into_iter().map(|e| e.name()).collect::>() - ), + ) } } diff --git a/pageserver/src/tenant/timeline/span.rs b/pageserver/src/tenant/timeline/span.rs index 3cd405dc31..9ef0d5f92a 100644 --- a/pageserver/src/tenant/timeline/span.rs +++ b/pageserver/src/tenant/timeline/span.rs @@ -1,26 +1,25 @@ +#[cfg(debug_assertions)] +use utils::tracing_span_assert::{check_fields_present, Extractor, MultiNameExtractor}; + #[cfg(not(debug_assertions))] -#[inline] pub(crate) fn debug_assert_current_span_has_tenant_and_timeline_id() {} #[cfg(debug_assertions)] -#[inline] +#[track_caller] pub(crate) fn debug_assert_current_span_has_tenant_and_timeline_id() { - use utils::tracing_span_assert; + static TIMELINE_ID_EXTRACTOR: once_cell::sync::Lazy> = + once_cell::sync::Lazy::new(|| { + MultiNameExtractor::new("TimelineId", ["timeline_id", "timeline"]) + }); - pub static TIMELINE_ID_EXTRACTOR: once_cell::sync::Lazy< - tracing_span_assert::MultiNameExtractor<2>, - > = once_cell::sync::Lazy::new(|| { - tracing_span_assert::MultiNameExtractor::new("TimelineId", ["timeline_id", "timeline"]) - }); - - match tracing_span_assert::check_fields_present([ + let fields: [&dyn Extractor; 2] = [ &*crate::tenant::span::TENANT_ID_EXTRACTOR, &*TIMELINE_ID_EXTRACTOR, - ]) { - Ok(()) => (), - Err(missing) => panic!( + ]; + if let Err(missing) = check_fields_present(fields) { + panic!( "missing extractors: {:?}", missing.into_iter().map(|e| e.name()).collect::>() - ), + ) } }