Skip to content

Commit b3c17e7

Browse files
Copilotcijothomas
andauthored
chore: Refactor benchmark to remove conditional logic and measure precise cost (#363)
Co-authored-by: Cijo Thomas <[email protected]>
1 parent 796f850 commit b3c17e7

File tree

1 file changed

+41
-27
lines changed
  • opentelemetry-user-events-logs/benches

1 file changed

+41
-27
lines changed

opentelemetry-user-events-logs/benches/logs.rs

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -34,51 +34,65 @@ use tracing::error;
3434
use tracing_subscriber::prelude::*;
3535
use tracing_subscriber::Registry;
3636

37-
fn benchmark_with_ot_layer(c: &mut Criterion, name: &str, num_attributes: usize) {
37+
fn setup_provider() -> SdkLoggerProvider {
3838
let user_event_processor = Processor::builder("myprovider").build().unwrap();
39-
let provider = SdkLoggerProvider::builder()
39+
SdkLoggerProvider::builder()
4040
.with_resource(
4141
Resource::builder_empty()
4242
.with_service_name("benchmark")
4343
.build(),
4444
)
4545
.with_log_processor(user_event_processor)
46-
.build();
46+
.build()
47+
}
48+
49+
fn benchmark_4_attributes(c: &mut Criterion) {
50+
let provider = setup_provider();
51+
let ot_layer = tracing_layer::OpenTelemetryTracingBridge::new(&provider);
52+
let subscriber = Registry::default().with(ot_layer);
53+
54+
tracing::subscriber::with_default(subscriber, || {
55+
c.bench_function("User_Event_4_Attributes", |b| {
56+
b.iter(|| {
57+
error!(
58+
name : "CheckoutFailed",
59+
field1 = "field1",
60+
field2 = "field2",
61+
field3 = "field3",
62+
field4 = "field4",
63+
message = "Unable to process checkout."
64+
);
65+
});
66+
});
67+
});
68+
}
69+
70+
fn benchmark_6_attributes(c: &mut Criterion) {
71+
let provider = setup_provider();
4772
let ot_layer = tracing_layer::OpenTelemetryTracingBridge::new(&provider);
4873
let subscriber = Registry::default().with(ot_layer);
4974

5075
tracing::subscriber::with_default(subscriber, || {
51-
c.bench_function(name, |b| {
76+
c.bench_function("User_Event_6_Attributes", |b| {
5277
b.iter(|| {
53-
if num_attributes == 4 {
54-
error!(
55-
name : "CheckoutFailed",
56-
field1 = "field1",
57-
field2 = "field2",
58-
field3 = "field3",
59-
field4 = "field4",
60-
message = "Unable to process checkout."
61-
);
62-
} else if num_attributes == 6 {
63-
error!(
64-
name : "CheckoutFailed",
65-
field1 = "field1",
66-
field2 = "field2",
67-
field3 = "field3",
68-
field4 = "field4",
69-
field5 = "field5",
70-
field6 = "field6",
71-
message = "Unable to process checkout."
72-
);
73-
}
78+
error!(
79+
name : "CheckoutFailed",
80+
field1 = "field1",
81+
field2 = "field2",
82+
field3 = "field3",
83+
field4 = "field4",
84+
field5 = "field5",
85+
field6 = "field6",
86+
message = "Unable to process checkout."
87+
);
7488
});
7589
});
7690
});
7791
}
7892

7993
fn criterion_benchmark(c: &mut Criterion) {
80-
benchmark_with_ot_layer(c, "User_Event_4_Attributes", 4);
81-
benchmark_with_ot_layer(c, "User_Event_6_Attributes", 6)
94+
benchmark_4_attributes(c);
95+
benchmark_6_attributes(c);
8296
}
8397

8498
criterion_group! {

0 commit comments

Comments
 (0)