Skip to content

Commit 590c7ab

Browse files
authored
Add benchmarks to show cost of random generation (#1667)
1 parent 758cdd7 commit 590c7ab

File tree

4 files changed

+39
-9
lines changed

4 files changed

+39
-9
lines changed

opentelemetry-sdk/benches/metric_counter.rs

+11
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ fn counter_add(c: &mut Criterion) {
6767
);
6868
});
6969
});
70+
71+
c.bench_function("Random_Generator_5", |b| {
72+
b.iter(|| {
73+
let mut rng = SmallRng::from_entropy();
74+
let _i1 = rng.gen_range(0..4);
75+
let _i2 = rng.gen_range(0..4);
76+
let _i3 = rng.gen_range(0..10);
77+
let _i4 = rng.gen_range(0..10);
78+
let _i5 = rng.gen_range(0..10);
79+
});
80+
});
7081
}
7182

7283
criterion_group!(benches, criterion_benchmark);

opentelemetry/benches/metrics.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ fn counter_add(c: &mut Criterion) {
3737
});
3838
});
3939

40+
let kv = [
41+
KeyValue::new("attribute1", "value1"),
42+
KeyValue::new("attribute2", "value2"),
43+
KeyValue::new("attribute3", "value3"),
44+
KeyValue::new("attribute4", "value4"),
45+
];
46+
4047
c.bench_function("Counter_AddWithStaticArray", |b| {
4148
b.iter(|| {
42-
let kv = [
43-
KeyValue::new("attribute1", "value1"),
44-
KeyValue::new("attribute2", "value2"),
45-
KeyValue::new("attribute3", "value3"),
46-
KeyValue::new("attribute4", "value4"),
47-
];
48-
4949
counter.add(1, &kv);
5050
});
5151
});

stress/Cargo.toml

+7-2
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,17 @@ name = "traces"
1919
path = "src/traces.rs"
2020
doc = false
2121

22+
[[bin]] # Bin to run the stress tests to show the cost of random number generation
23+
name = "random"
24+
path = "src/random.rs"
25+
doc = false
26+
2227
[dependencies]
2328
ctrlc = "3.2.5"
2429
lazy_static = "1.4.0"
2530
num_cpus = "1.15.0"
26-
opentelemetry = { path = "../opentelemetry", features = ["metrics", "logs", "trace"] }
27-
opentelemetry_sdk = { path = "../opentelemetry-sdk", features = ["metrics", "logs", "trace"] }
31+
opentelemetry = { path = "../opentelemetry", features = ["metrics", "logs", "trace", "logs_level_enabled"] }
32+
opentelemetry_sdk = { path = "../opentelemetry-sdk", features = ["metrics", "logs", "trace", "logs_level_enabled"] }
2833
opentelemetry-appender-tracing = { path = "../opentelemetry-appender-tracing"}
2934
rand = { version = "0.8.4", features = ["small_rng"] }
3035
tracing = { workspace = true, features = ["std"]}

stress/src/random.rs

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
use rand::{rngs::SmallRng, Rng, SeedableRng};
2+
3+
mod throughput;
4+
5+
fn main() {
6+
throughput::test_throughput(test_random_generation);
7+
}
8+
9+
fn test_random_generation() {
10+
let mut rng = SmallRng::from_entropy();
11+
let _index_first_attribute = rng.gen_range(0..10);
12+
let _index_second_attribute = rng.gen_range(0..10);
13+
let _index_third_attribute = rng.gen_range(0..10);
14+
}

0 commit comments

Comments
 (0)