Skip to content

Commit db812ea

Browse files
committed
Update vendor with fresh dependencies and apply memory leak fixes
- Run full vendor update to get latest dependencies - Apply semaphore patches to prevent ELF parsing memory spikes - Copy generated eBPF files and Java agent jar from .obi-src - Update Dockerfile to verify patches are preserved during build - Add build-preserve-patches target to Makefile for CI - Set DEV_OBI=1 in Docker build to skip vendor regeneration This ensures we have both: 1. All required dependencies and generated files 2. Our memory spike fixes for concurrent ELF parsing
1 parent 285668b commit db812ea

File tree

13 files changed

+30
-133
lines changed

13 files changed

+30
-133
lines changed

.github/workflows/betterstack-docker.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ jobs:
8484
8585
- name: Build and test
8686
run: |
87-
# Skip vendor regeneration since we have patched vendor code
88-
make compile
87+
make build-preserve-patches
8988
make test
9089
9190
- name: Build and push Docker image

Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,19 @@ COPY third_party_licenses.csv third_party_licenses.csv
3636
ENV TOOLS_DIR=/go/bin
3737

3838
# Build
39+
RUN echo "=== Verifying patches before build ===" && \
40+
grep -q "BEYLA_MAX_CONCURRENT_ELF" vendor/go.opentelemetry.io/obi/pkg/components/discover/typer.go && \
41+
echo "✅ Patches present before build steps" || (echo "❌ Patches missing before build steps" && exit 1)
42+
3943
RUN if [ -z "${DEV_OBI}" ]; then \
4044
make generate && \
4145
make copy-obi-vendor \
4246
; fi
47+
48+
RUN echo "=== Verifying patches after generate/vendor steps ===" && \
49+
grep -q "BEYLA_MAX_CONCURRENT_ELF" vendor/go.opentelemetry.io/obi/pkg/components/discover/typer.go && \
50+
echo "✅ Patches still present after generate/vendor steps" || (echo "❌ Patches overwritten by generate/vendor steps" && exit 1)
51+
4352
RUN make compile
4453

4554
# Create final image from minimal + built binary

Makefile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,15 +197,33 @@ copy-obi-vendor:
197197
go get go.opentelemetry.io/obi
198198
go mod vendor
199199

200+
.PHONY: copy-generated-files-only
201+
copy-generated-files-only:
202+
@echo "### Copying generated files without overwriting vendor patches..."
203+
@if [ -d ".obi-src" ]; then \
204+
cp -f .obi-src/pkg/internal/otelsdk/grafana-opentelemetry-java.jar vendor/go.opentelemetry.io/obi/pkg/internal/otelsdk/ 2>/dev/null || true; \
205+
find .obi-src -name "*bpfel.go" -exec cp {} vendor/go.opentelemetry.io/obi/pkg/internal/ebpf/ \; 2>/dev/null || true; \
206+
find .obi-src -name "*bpfeb.go" -exec cp {} vendor/go.opentelemetry.io/obi/pkg/internal/ebpf/ \; 2>/dev/null || true; \
207+
echo "Generated files copied successfully"; \
208+
else \
209+
echo "No .obi-src directory found, skipping generated file copy"; \
210+
fi
211+
200212
.PHONY: vendor-obi
201213
vendor-obi: obi-submodule docker-generate copy-obi-vendor
202214

215+
.PHONY: vendor-obi-preserve-patches
216+
vendor-obi-preserve-patches: obi-submodule docker-generate copy-generated-files-only
217+
203218
.PHONY: verify
204219
verify: prereqs lint-dashboard vendor-obi lint test
205220

206221
.PHONY: build
207222
build: vendor-obi verify compile
208223

224+
.PHONY: build-preserve-patches
225+
build-preserve-patches: vendor-obi-preserve-patches compile
226+
209227
.PHONY: all
210228
all: vendor-obi build
211229

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ require (
3434
go.opentelemetry.io/collector/exporter/otlpexporter v0.136.0
3535
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.136.0
3636
go.opentelemetry.io/collector/pdata v1.42.0
37-
go.opentelemetry.io/obi v0.0.0-20251013143511-10fd81bc8389
37+
go.opentelemetry.io/obi v0.0.0-20251023073643-d71d07a6a4d2
3838
go.opentelemetry.io/otel v1.38.0
3939
go.opentelemetry.io/otel/sdk v1.38.0
4040
go.opentelemetry.io/otel/sdk/metric v1.38.0

vendor/go.opentelemetry.io/obi/pkg/components/discover/typer_memory_test.go

Lines changed: 0 additions & 129 deletions
This file was deleted.

vendor/go.opentelemetry.io/obi/pkg/internal/ebpf/generictracer/bpf_x86_bpfel-7e2b5d0f.o.tmp

Whitespace-only changes.

vendor/go.opentelemetry.io/obi/pkg/internal/ebpf/gotracer/bpf_x86_bpfel-7e1360b9.o.tmp

Whitespace-only changes.

vendor/go.opentelemetry.io/obi/pkg/internal/ebpf/gpuevent/bpf_x86_bpfel-08f9950d.o.tmp

Whitespace-only changes.

vendor/go.opentelemetry.io/obi/pkg/internal/ebpf/logger/bpfdebug_x86_bpfel-8fae181b.o.tmp

Whitespace-only changes.

vendor/go.opentelemetry.io/obi/pkg/internal/ebpf/tctracer/bpf_x86_bpfel-c64afbf7.o.tmp

Whitespace-only changes.

0 commit comments

Comments
 (0)