prima_datadog/macros/
compare.rs1#[macro_export]
30macro_rules! compare {
31 ($name:expr, $path_taken:expr, || $block_1:expr, || $block_2:expr) => {
32 {
33 use $crate::timing_guard::EXPERIMENTS_METRIC_NAME;
34 let prima_datadog_experiment_tags = &[::std::format!("experiment_name:{}", $name), ::std::format!("path_taken:{}", $path_taken)];
35 let _prima_datadog_timing_guard = $crate::Datadog::enter_timing(EXPERIMENTS_METRIC_NAME, prima_datadog_experiment_tags);
36 if $path_taken == 0 {
37 $block_1
38 } else {
39 $block_2
40 }
41 }
42 };
43 ($name:expr, $path_taken:expr, move || $block_1:expr, move || $block_2:expr) => {
44 {
45 use $crate::timing_guard::EXPERIMENTS_METRIC_NAME;
46 let prima_datadog_experiment_tags = &[::std::format!("experiment_name:{}", $name), ::std::format!("path_taken:{}", $path_taken)];
47 let _prima_datadog_timing_guard = $crate::Datadog::enter_timing(EXPERIMENTS_METRIC_NAME, prima_datadog_experiment_tags);
48 if $path_taken == 0 {
49 $block_1
50 } else {
51 $block_2
52 }
53 }
54 };
55 ($name:expr, $path_taken:expr, || $block_1:expr, || $block_2:expr; $( $key:expr => $value:expr ), *) => {
56 {
57 use $crate::timing_guard::EXPERIMENTS_METRIC_NAME;
58 let prima_datadog_experiment_tags = &[::std::format!("experiment_name:{}", $name), ::std::format!("path_taken:{}", $path_taken), $(::std::format!("{}:{}", $key, $value)), *];
59 let _prima_datadog_timing_guard = $crate::Datadog::enter_timing(EXPERIMENTS_METRIC_NAME, prima_datadog_experiment_tags);
60 if $path_taken == 0 {
61 $block_1
62 } else {
63 $block_2
64 }
65 }
66 };
67 ($name:expr, $path_taken:expr, move || $block_1:expr, move || $block_2:expr; $( $key:expr => $value:expr ), *) => {
68 {
69 use $crate::timing_guard::EXPERIMENTS_METRIC_NAME;
70 let prima_datadog_experiment_tags = &[::std::format!("experiment_name:{}", $name), ::std::format!("path_taken:{}", $path_taken), $(::std::format!("{}:{}", $key, $value)), *];
71 let _prima_datadog_timing_guard = $crate::Datadog::enter_timing(EXPERIMENTS_METRIC_NAME, prima_datadog_experiment_tags);
72 if $path_taken == 0 {
73 $block_1
74 } else {
75 $block_2
76 }
77 }
78 };
79}