open-telemetry / opentelemetry-ebpf-profiler

The production-scale datacenter profiler (C/C++, Go, Rust, Python, Java, NodeJS, .NET, PHP, Ruby, Perl, ...)
Apache License 2.0
2.48k stars 275 forks source link

RFC: include debug version for tracers in the git repository #225

Open florianl opened 2 weeks ago

florianl commented 2 weeks ago

This RFC originates from a discussion on slack.

Currently only release ELFs for the eBPF programs checked into the repository. support/ebpf/tracer.ebpf.release.amd64 accounts for 291 KBytes and support/ebpf/tracer.ebpf.release.arm64 for 283 KBytes. Every time something changes in the eBPF programs, these ELFs need to be updated and will account for some space in the git repository. When using this repository as dependency, it is currently not possible without additional steps to load the eBPF programs with debug symbols, as they do not exist by default.

If the eBPF programs with debug information will be added to the repository, the size of the repository will increase. At the moment, support/ebpf/tracer.ebpf.debug.amd64 does have a size of 1.4 MBytes and support/ebpf/tracer.ebpf.debug.arm64 also does have a size of 1.4 MBytes.

Some previous and related discussions were also happening in https://github.com/open-telemetry/opentelemetry-ebpf-profiler/pull/145. Other OTel SIGs do have similar discussions ongoing - e.g. https://github.com/open-telemetry/opentelemetry-go-instrumentation/issues/1233

For visibility - friendly ping to people that were involved in the discussion on slack: @umanwizard @Gandem @rockdaboot @athre0z @dmathieu

christos68k commented 2 weeks ago

Based on previous discussions, I think the consensus is not to store debug tracers in the repository. We might be able to get away with storing release tracers as their size is comparatively small but we should monitor performance and adapt to a different solution if that's problematic.

tsint commented 2 weeks ago

Since tracers cannot yet be integrated as a package by third-party software, I support not storing debug tracers to the repository. However, I do suggest that build with debug tracer by default, without requiring an additional make debug to build.

rockdaboot commented 2 weeks ago

@tsint Can you open a separate issue for the " I do suggest that build with debug tracer by default, without requiring an additional make debug to build."?

tsint commented 2 weeks ago

@tsint Can you open a separate issue for the " I do suggest that build with debug tracer by default, without requiring an additional make debug to build."?

OK, I'll prepare it and create a new RFC at the right time.

christos68k commented 1 week ago

Can we close this issue?