From 538f80047895365a20da61c61210c3e1a3897327 Mon Sep 17 00:00:00 2001 From: Rafael Roquetto Date: Thu, 17 Oct 2024 14:04:44 -0600 Subject: [PATCH] Test capabilities and ensure tracer is only instantiated when required --- pkg/beyla/os.go | 4 ++++ pkg/internal/discover/finder.go | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/beyla/os.go b/pkg/beyla/os.go index b6833ce82..af416fa2c 100644 --- a/pkg/beyla/os.go +++ b/pkg/beyla/os.go @@ -83,6 +83,10 @@ func checkCapabilitiesForSetOptions(config *Config, caps *helpers.OSCapabilities if config.Enabled(FeatureAppO11y) { testAndSet(caps, capError, unix.CAP_CHECKPOINT_RESTORE) testAndSet(caps, capError, unix.CAP_SYS_PTRACE) + + if config.EBPF.UseLinuxTC { + testAndSet(caps, capError, unix.CAP_NET_ADMIN) + } } if config.Enabled(FeatureNetO11y) { diff --git a/pkg/internal/discover/finder.go b/pkg/internal/discover/finder.go index 886a6db44..456325c8a 100644 --- a/pkg/internal/discover/finder.go +++ b/pkg/internal/discover/finder.go @@ -98,5 +98,9 @@ func newGoTracersGroup(cfg *beyla.Config, metrics imetrics.Reporter) []ebpf.Trac } func newGenericTracersGroup(cfg *beyla.Config, metrics imetrics.Reporter) []ebpf.Tracer { - return []ebpf.Tracer{generictracer.New(cfg, metrics), tctracer.New(cfg)} + if cfg.EBPF.UseLinuxTC { + return []ebpf.Tracer{generictracer.New(cfg, metrics), tctracer.New(cfg)} + } + + return []ebpf.Tracer{generictracer.New(cfg, metrics)} }