pixie icon indicating copy to clipboard operation
pixie copied to clipboard

Move test demo apps out of Bazel to ease Go version deprecation and support testing offsetgen instrumentation

Open ddelnano opened this issue 6 months ago • 0 comments

Summary: Move test demo apps out of Bazel to ease Go version deprecation and support testing offsetgen instrumentation

This change is intended to help in two areas. The first is to decouple stirling's go version test matrix from Pixie's Go build. Our test suite currently builds all its go binaries with bazel, which means Pixie's go dependencies must accommodate all go versions used in our tests. This slows down upgrading our dependencies and go version.

The second is that in order to facilitate more memory efficient Go uprobes. I've implemented an opentelemetry-go-instrumentation offsetgen based version in #2207, #2212, https://github.com/pixie-io/opentelemetry-go-instrumentation/pull/1. This instrumentation works by computing Go struct and function argument offsets ahead of time (avoiding expensive DWARF parsing at runtime) and applying the correct offset based on a binary's buildinfo. Unfortunately rules_go does not yet support populating the buildinfo section like the standard Go toolchain. We can eventually switch to this once it's implemented (https://github.com/bazel-contrib/rules_go/issues/3090), but until then these images can serve an additional purpose.

Relevant Issues: N/A

Type of change: /kind feature

Test Plan: Verified the following:

  • [x] Verified both images build for all the Go versions specified
  • [x] Integrated images built from this branch into http2_trace_bpf_test and go_tls_trace_bpf_test. These work for the existing DWARF based uprobes and the offsetgen based ones

ddelnano avatar Jun 10 '25 16:06 ddelnano