opentelemetry-benchmarks Weekly: Ubuntu 26.04 Containers and a Dashboard Publishing Fix
I looked at the last week of commits in opentelemetry-benchmarks, the project that benchmarks OpenTelemetry SDK performance from .NET, Rust, and other harnesses on bare metal runners. Eight commits landed, and only one of them touches benchmark code. The rest are dependency maintenance, plus one real fix that unblocks dashboard publishing.
Benchmark containers move to Ubuntu 26.04
The biggest change is in the container images. The maintainers first pinned the ubuntu:24.04 image to a newer digest, then two days later bumped the Docker tag all the way to Ubuntu 26.04. Both benchmark workflows run the harness inside a container on Oracle bare metal hardware (64 CPUs, 1024 GB), so the OS version matters for consistent numbers.
The diff is a single line in each workflow file: the image in container.image changed from a pinned ubuntu:24.04 SHA to a pinned ubuntu:26.04 SHA. Pinning by digest is the right pattern here. Anyone copying these workflows gets a reproducible environment instead of a floating tag.
Both run-benchmark-dotnet.yml and run-benchmark-rust.yml were touched, three commits each this week.
If you track OpenTelemetry SDK benchmark numbers from this project, note that results published before October 21 come from Ubuntu 24.04 and later results come from 26.04. Small system level shifts can show up in overhead measurements, so treat this as a soft boundary when comparing old and new runs.
Harness toolchain bumps
The language toolchains behind the harnesses also moved:
- Rust bumped to v1.99.1, which changes
harnesses/rust/rust-toolchain.toml - .NET SDK bumped to v10.0.402, which changes
harnesses/dotnet/global.json - Lock file maintenance refreshed the Rust
Cargo.lock
None of this changes what is measured. It changes the compiler and runtime that the SDK code is built with, which is worth knowing if you compare a result from this week against one from last month. The benchmark project tracks current toolchains on purpose, since the point is to measure the SDKs as real users build them.
CI and workflow dependencies
The remaining bumps are all GitHub Actions plumbing:
- The CodeQL action moved to v4.39.0
- The shared OpenTelemetry workflows action moved to v0.23.0, pulling changes into
codeql.ymlandzizmor.yml
If you maintain a fork of these workflows, the shared workflows bump at v0.23.0 is the one to mirror. The rest only affects this repository.
The one functional fix: dashboard publishing
The only non renovate change is a maintainer fix in the dashboard publishing change (#68). The summary: benchmark results were produced inside a container and then published to the dashboard, and the publishing step failed because the workspace directory was not trusted by git in that context.
The commit, Trust benchmark workspace before publishing dashboard results, adds a git safe.directory style configuration so the workspace owned by a different user inside the container is accepted. This is the classic fatal: detected dubious ownership problem any CI job that mixes uid inside and outside a container has hit. The fix is small, but without it the dashboard went stale even though benchmarks kept running.
What to watch
- The Ubuntu 26.04 switch may surface missing packages or changed defaults in the bare metal image. If a benchmark run fails in the next weeks, look there first.
- More renovate PRs will follow weekly; this repo stays current mostly by automation.
- The dashboard publishing fix is recent. If the public dashboard updates on schedule now, the fix worked; if not, expect a follow up.
This was a quiet maintenance week, and the dashboard fix is the only change most readers will notice. Worth a look if you rely on the published benchmark numbers.