Line data Source code
1 : use utils::tracing_span_assert::check_fields_present;
2 :
3 : mod extractors {
4 : use utils::tracing_span_assert::ConstExtractor;
5 :
6 : pub(super) const TENANT_ID: ConstExtractor = ConstExtractor::new("tenant_id");
7 : pub(super) const SHARD_ID: ConstExtractor = ConstExtractor::new("shard_id");
8 : pub(super) const TIMELINE_ID: ConstExtractor = ConstExtractor::new("timeline_id");
9 : }
10 :
11 : #[track_caller]
12 1230 : pub(crate) fn debug_assert_current_span_has_tenant_id() {
13 1230 : if cfg!(debug_assertions) {
14 1230 : if let Err(missing) = check_fields_present!([&extractors::TENANT_ID, &extractors::SHARD_ID])
15 : {
16 0 : panic!("missing extractors: {missing:?}")
17 1230 : }
18 0 : }
19 1230 : }
20 :
21 : #[track_caller]
22 3630 : pub(crate) fn debug_assert_current_span_has_tenant_and_timeline_id() {
23 3630 : if cfg!(debug_assertions) {
24 3630 : if let Err(missing) = check_fields_present!([
25 3630 : &extractors::TENANT_ID,
26 3630 : &extractors::SHARD_ID,
27 3630 : &extractors::TIMELINE_ID,
28 3630 : ]) {
29 0 : panic!("missing extractors: {missing:?}")
30 3630 : }
31 0 : }
32 3630 : }
33 :
34 : #[track_caller]
35 0 : pub(crate) fn debug_assert_current_span_has_tenant_and_timeline_id_no_shard_id() {
36 0 : if cfg!(debug_assertions) {
37 0 : if let Err(missing) =
38 0 : check_fields_present!([&extractors::TENANT_ID, &extractors::TIMELINE_ID,])
39 : {
40 0 : panic!("missing extractors: {missing:?}")
41 0 : }
42 0 : }
43 0 : }
|