Skip to content

Commit da2029e

Browse files
authored
perf: Run all benchmarks for shorter time (#2870)
1 parent b2de6cc commit da2029e

File tree

42 files changed

+233
-36
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+233
-36
lines changed

.github/workflows/benchmark.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ jobs:
3232
- uses: actions/checkout@v4
3333
with:
3434
fetch-depth: 10 # Fetch current commit and its parent
35+
- name: "Show change commit"
36+
run: git log -1
3537
- uses: arduino/setup-protoc@v3
3638
with:
3739
repo-token: ${{ secrets.GITHUB_TOKEN }}
@@ -42,11 +44,15 @@ jobs:
4244
with:
4345
cwd: opentelemetry
4446
branchName: ${{ env.BRANCH_NAME }}
47+
- name: "Checkout change commit"
48+
run: git checkout $GITHUB_SHA
4549
- uses: boa-dev/criterion-compare-action@v3
4650
with:
4751
cwd: opentelemetry-appender-tracing
4852
features: spec_unstable_logs_enabled
4953
branchName: ${{ env.BRANCH_NAME }}
54+
- name: "Checkout change commit"
55+
run: git checkout $GITHUB_SHA
5056
- uses: boa-dev/criterion-compare-action@v3
5157
with:
5258
cwd: opentelemetry-sdk

examples/logs-basic/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ version = "0.1.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
7+
autobenches = false
8+
9+
[[bin]]
10+
name = "logs-basic"
11+
path = "src/main.rs"
12+
bench = false
713

814
[dependencies]
915
opentelemetry_sdk = { path = "../../opentelemetry-sdk", features = ["logs"] }

examples/metrics-advanced/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ version = "0.1.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
7+
autobenches = false
8+
9+
[[bin]]
10+
name = "metrics-advanced"
11+
path = "src/main.rs"
12+
bench = false
713

814
[dependencies]
915
opentelemetry = { path = "../../opentelemetry", features = ["metrics"] }

examples/metrics-basic/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ version = "0.1.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
7+
autobenches = false
8+
9+
[[bin]]
10+
name = "metrics-basic"
11+
path = "src/main.rs"
12+
bench = false
713

814
[dependencies]
915
opentelemetry = { path = "../../opentelemetry", features = ["metrics"] }

examples/tracing-grpc/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@ version = "0.1.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
7+
autobenches = false
78

89
[[bin]] # Bin to run the gRPC server
910
name = "grpc-server"
1011
path = "src/server.rs"
12+
bench = false
1113

1214
[[bin]] # Bin to run the gRPC client
1315
name = "grpc-client"
1416
path = "src/client.rs"
17+
bench = false
1518

1619
[dependencies]
1720
opentelemetry = { path = "../../opentelemetry" }

examples/tracing-http-propagator/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,19 @@ version = "0.1.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
7+
autobenches = false
78

89
[[bin]] # Bin to run the http server
910
name = "http-server"
1011
path = "src/server.rs"
1112
doc = false
13+
bench = false
1214

1315
[[bin]] # Bin to run the client
1416
name = "http-client"
1517
path = "src/client.rs"
1618
doc = false
19+
bench = false
1720

1821
[dependencies]
1922
http-body-util = { workspace = true }

opentelemetry-appender-log/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ keywords = ["opentelemetry", "log", "logs"]
99
license = "Apache-2.0"
1010
rust-version = "1.75.0"
1111
edition = "2021"
12+
autobenches = false
13+
14+
[lib]
15+
bench = false
1216

1317
[dependencies]
1418
opentelemetry = { version = "0.29", path = "../opentelemetry", features = [

opentelemetry-appender-tracing/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ readme = "README.md"
99
keywords = ["opentelemetry", "log", "logs", "tracing"]
1010
license = "Apache-2.0"
1111
rust-version = "1.75.0"
12+
autobenches = false
1213

1314
[dependencies]
1415
log = { workspace = true, optional = true }

opentelemetry-appender-tracing/benches/log-attributes.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,14 +258,19 @@ fn criterion_benchmark(c: &mut Criterion) {
258258
#[cfg(not(target_os = "windows"))]
259259
criterion_group! {
260260
name = benches;
261-
config = Criterion::default().with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
261+
config = Criterion::default()
262+
.warm_up_time(std::time::Duration::from_secs(1))
263+
.measurement_time(std::time::Duration::from_secs(2))
264+
.with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
262265
targets = criterion_benchmark
263266
}
264267

265268
#[cfg(target_os = "windows")]
266269
criterion_group! {
267270
name = benches;
268-
config = Criterion::default();
271+
config = Criterion::default()
272+
.warm_up_time(std::time::Duration::from_secs(1))
273+
.measurement_time(std::time::Duration::from_secs(2));
269274
targets = criterion_benchmark
270275
}
271276

opentelemetry-appender-tracing/benches/logs.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,18 @@ fn criterion_benchmark(c: &mut Criterion) {
168168
#[cfg(not(target_os = "windows"))]
169169
criterion_group! {
170170
name = benches;
171-
config = Criterion::default().with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
171+
config = Criterion::default()
172+
.warm_up_time(std::time::Duration::from_secs(1))
173+
.measurement_time(std::time::Duration::from_secs(2))
174+
.with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
172175
targets = criterion_benchmark
173176
}
174177
#[cfg(target_os = "windows")]
175178
criterion_group! {
176179
name = benches;
177-
config = Criterion::default();
180+
config = Criterion::default()
181+
.warm_up_time(std::time::Duration::from_secs(1))
182+
.measurement_time(std::time::Duration::from_secs(2));
178183
targets = criterion_benchmark
179184
}
180185
criterion_main!(benches);

opentelemetry-http/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ keywords = ["opentelemetry", "tracing", "context", "propagation"]
88
license = "Apache-2.0"
99
edition = "2021"
1010
rust-version = "1.75.0"
11+
autobenches = false
1112

1213
[features]
1314
default = ["internal-logs"]
@@ -35,3 +36,6 @@ ignored = [
3536

3637
[lints]
3738
workspace = true
39+
40+
[lib]
41+
bench = false

opentelemetry-jaeger-propagator/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ keywords = ["opentelemetry", "jaeger", "propagator"]
1414
license = "Apache-2.0"
1515
edition = "2021"
1616
rust-version = "1.75.0"
17+
autobenches = false
1718

1819
[package.metadata.docs.rs]
1920
all-features = true
@@ -39,3 +40,6 @@ ignored = [
3940

4041
[lints]
4142
workspace = true
43+
44+
[lib]
45+
bench = false

opentelemetry-otlp/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ license = "Apache-2.0"
1515
edition = "2021"
1616
rust-version = "1.75.0"
1717
autotests = false
18+
autobenches = false
1819

1920
[[test]]
2021
name = "smoke"
@@ -85,3 +86,6 @@ integration-testing = ["tonic", "prost", "tokio/full", "trace", "logs"]
8586

8687
[lints]
8788
workspace = true
89+
90+
[lib]
91+
bench = false

opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ version = "0.1.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
7+
autobenches = false
8+
9+
[[bin]]
10+
name = "basic-otlp-http"
11+
path = "src/main.rs"
12+
bench = false
713

814
[features]
915
default = ["reqwest-blocking"]

opentelemetry-otlp/examples/basic-otlp/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ version = "0.1.0"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
7+
autobenches = false
8+
9+
[[bin]]
10+
name = "basic-otlp"
11+
path = "src/main.rs"
12+
bench = false
713

814
[dependencies]
915
opentelemetry = { path = "../../../opentelemetry" }

opentelemetry-otlp/tests/integration_test/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name = "integration_test_runner"
33
version = "0.1.0"
44
edition = "2021"
55
publish = false
6+
autobenches = false
67

78
[dependencies]
89
opentelemetry = { path = "../../../opentelemetry", features = [] }
@@ -35,3 +36,6 @@ default = ["tonic-client", "internal-logs"]
3536

3637
[lints]
3738
workspace = true
39+
40+
[lib]
41+
bench = false

opentelemetry-proto/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ license = "Apache-2.0"
1515
edition = "2021"
1616
rust-version = "1.75.0"
1717
autotests = false
18+
autobenches = false
1819

1920
[lib]
2021
doctest = false
22+
bench = false
2123

2224
[[test]]
2325
name = "grpc_build"

opentelemetry-sdk/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ readme = "README.md"
88
license = "Apache-2.0"
99
edition = "2021"
1010
rust-version = "1.75.0"
11+
autobenches = false
1112

1213
[dependencies]
1314
opentelemetry = { version = "0.29", path = "../opentelemetry/" }
@@ -112,7 +113,7 @@ required-features = ["rt-tokio", "testing"]
112113
[[bench]]
113114
name = "metric"
114115
harness = false
115-
required-features = ["metrics"]
116+
required-features = ["metrics", "spec_unstable_metrics_views"]
116117

117118
[[bench]]
118119
name = "log"

opentelemetry-sdk/benches/batch_span_processor.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,11 @@ fn criterion_benchmark(c: &mut Criterion) {
8080
group.finish();
8181
}
8282

83-
criterion_group!(benches, criterion_benchmark);
83+
criterion_group! {
84+
name = benches;
85+
config = Criterion::default()
86+
.warm_up_time(std::time::Duration::from_secs(1))
87+
.measurement_time(std::time::Duration::from_secs(2));
88+
targets = criterion_benchmark
89+
}
8490
criterion_main!(benches);

opentelemetry-sdk/benches/context.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,13 +173,18 @@ impl SpanExporter for NoopExporter {
173173
#[cfg(not(target_os = "windows"))]
174174
criterion_group! {
175175
name = benches;
176-
config = Criterion::default().with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
176+
config = Criterion::default()
177+
.warm_up_time(std::time::Duration::from_secs(1))
178+
.measurement_time(std::time::Duration::from_secs(2))
179+
.with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
177180
targets = criterion_benchmark
178181
}
179182
#[cfg(target_os = "windows")]
180183
criterion_group! {
181184
name = benches;
182-
config = Criterion::default();
185+
config = Criterion::default()
186+
.warm_up_time(std::time::Duration::from_secs(1))
187+
.measurement_time(std::time::Duration::from_secs(2));
183188
targets = criterion_benchmark
184189
}
185190
criterion_main!(benches);

opentelemetry-sdk/benches/log.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,5 +330,11 @@ fn criterion_benchmark(c: &mut Criterion) {
330330
});
331331
}
332332

333-
criterion_group!(benches, criterion_benchmark);
333+
criterion_group! {
334+
name = benches;
335+
config = Criterion::default()
336+
.warm_up_time(std::time::Duration::from_secs(1))
337+
.measurement_time(std::time::Duration::from_secs(2));
338+
targets = criterion_benchmark
339+
}
334340
criterion_main!(benches);

opentelemetry-sdk/benches/log_enabled.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,18 @@ fn criterion_benchmark(c: &mut Criterion) {
7676
#[cfg(not(target_os = "windows"))]
7777
criterion_group! {
7878
name = benches;
79-
config = Criterion::default().with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
79+
config = Criterion::default()
80+
.warm_up_time(std::time::Duration::from_secs(1))
81+
.measurement_time(std::time::Duration::from_secs(2))
82+
.with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
8083
targets = criterion_benchmark
8184
}
8285
#[cfg(target_os = "windows")]
8386
criterion_group! {
8487
name = benches;
85-
config = Criterion::default();
88+
config = Criterion::default()
89+
.warm_up_time(std::time::Duration::from_secs(1))
90+
.measurement_time(std::time::Duration::from_secs(2));
8691
targets = criterion_benchmark
8792
}
8893
criterion_main!(benches);

opentelemetry-sdk/benches/log_exporter.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,13 +167,18 @@ fn exporter_without_future(c: &mut Criterion) {
167167
#[cfg(not(target_os = "windows"))]
168168
criterion_group! {
169169
name = benches;
170-
config = Criterion::default().with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
170+
config = Criterion::default()
171+
.warm_up_time(std::time::Duration::from_secs(1))
172+
.measurement_time(std::time::Duration::from_secs(2))
173+
.with_profiler(PProfProfiler::new(100, Output::Flamegraph(None)));
171174
targets = criterion_benchmark
172175
}
173176
#[cfg(target_os = "windows")]
174177
criterion_group! {
175178
name = benches;
176-
config = Criterion::default();
179+
config = Criterion::default()
180+
.warm_up_time(std::time::Duration::from_secs(1))
181+
.measurement_time(std::time::Duration::from_secs(2));
177182
targets = criterion_benchmark
178183
}
179184
criterion_main!(benches);

opentelemetry-sdk/benches/log_processor.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,12 @@ fn log_cloning_and_send_to_channel_processor(c: &mut Criterion) {
169169
});
170170
});
171171
}
172-
criterion_group!(benches, criterion_benchmark);
173172

173+
criterion_group! {
174+
name = benches;
175+
config = Criterion::default()
176+
.warm_up_time(std::time::Duration::from_secs(1))
177+
.measurement_time(std::time::Duration::from_secs(2));
178+
targets = criterion_benchmark
179+
}
174180
criterion_main!(benches);

opentelemetry-sdk/benches/metric.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,5 +351,12 @@ fn benchmark_collect_histogram(b: &mut Bencher, n: usize) {
351351
})
352352
}
353353

354-
criterion_group!(benches, counters, histograms);
354+
criterion_group! {
355+
name = benches;
356+
config = Criterion::default()
357+
.warm_up_time(std::time::Duration::from_secs(1))
358+
.measurement_time(std::time::Duration::from_secs(2));
359+
targets = counters, histograms
360+
}
361+
355362
criterion_main!(benches);

0 commit comments

Comments
 (0)