Skip to content

chore(ci): track df_engine .text size and per-crate bloat on merges to main#3586

Open
mateenali66 wants to merge 1 commit into
open-telemetry:mainfrom
mateenali66:feat/2673-binary-size-ci
Open

chore(ci): track df_engine .text size and per-crate bloat on merges to main#3586
mateenali66 wants to merge 1 commit into
open-telemetry:mainfrom
mateenali66:feat/2673-binary-size-ci

Conversation

@mateenali66

Copy link
Copy Markdown
Contributor

Change Summary

adds the missing pieces from #2673 to the binary size workflow: a push-to-main trigger so metrics land per merge (was daily cron only), and a native cargo-bloat job on amd64 + arm64 that builds with symbols and records the .text section size plus the top 10 crate contributions per arch (tracked separately per arch, as preferred in the issue discussion). the docker job is untouched, it keeps measuring the shipped stripped size.

also fixed the summary merge: jq -s 'map(.[0])' only kept the first entry of each report file, which would have dropped the new multi-entry bloat reports. switched to add, and the results table now prints every metric.

one thing to watch: the 110% alert threshold now also applies to the per-crate series. crate attribution can shift when inlining changes, so if that alerts too often the crate series could move to a separate benchmark step with a higher threshold.

What issue does this PR close?

How are these changes tested?

ran the full workflow end to end via workflow_dispatch on my fork (both arches, docker + bloat jobs + summary): https://github.com/mateenali66/otel-arrow/actions/runs/30155340424. cargo-bloat's json schema (file-size, text-section-size, crates[]) and the jq transform were also verified locally against captured output.

Are there any user-facing changes?

no, CI only.

Changelog

  • Added a .chloggen/*.yaml entry
  • This PR is a chore (indicated in title)
  • This is a documentation-only PR.

…o main

Adds a push-to-main trigger and a native cargo-bloat job (amd64 + arm64)
to the binary size workflow. The docker job keeps measuring the shipped
stripped size; the new job builds with symbols and records the .text
section size plus the top 10 crate contributions per arch, all merged
into the same consolidated benchmark json published to the benchmarks
page.

Fixes open-telemetry#2673

Signed-off-by: Mateen Anjum <mateenali66@gmail.com>
@mateenali66
mateenali66 requested a review from a team as a code owner July 25, 2026 11:19
@github-actions github-actions Bot added ci-repo Repository maintenance, build, GH workflows, repo cleanup, or other chores size/M labels Jul 25, 2026
@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Jul 25, 2026

Copy link
Copy Markdown

Pull request dashboard status

Status last refreshed: 2026-07-26 19:03:41 UTC.

  • Waiting on: Reviewers
  • Next step: Review the latest changes.

This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected.

@codecov

codecov Bot commented Jul 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.91%. Comparing base (eaf8f4c) to head (00ee279).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3586      +/-   ##
==========================================
- Coverage   86.91%   86.91%   -0.01%     
==========================================
  Files         783      783              
  Lines      321311   321311              
==========================================
- Hits       279283   279266      -17     
- Misses      41504    41521      +17     
  Partials      524      524              
Components Coverage Δ
otap-dataflow 87.97% <ø> (-0.01%) ⬇️
query_engine 89.57% <ø> (ø)
otel-arrow-go 52.45% <ø> (ø)
quiver 92.20% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-repo Repository maintenance, build, GH workflows, repo cleanup, or other chores size/M

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Track df_engine binary size in CI

1 participant