diff --git a/cmd/system-probe/config/config.go b/cmd/system-probe/config/config.go index 9dd09e3d9809e..f3a0cdba2a9b0 100644 --- a/cmd/system-probe/config/config.go +++ b/cmd/system-probe/config/config.go @@ -155,8 +155,7 @@ func load() (*types.Config, error) { if cfg.GetBool(pngNS("enabled")) { c.EnabledModules[PingModule] = struct{}{} } - // TODO: add test - if cfg.GetBool(tracerouteNS("enabled")) || cfg.GetBool("network_path.connections_monitoring.enabled") { + if cfg.GetBool(tracerouteNS("enabled")) || cfg.GetBool(npNS("connections_monitoring.enabled")) { c.EnabledModules[TracerouteModule] = struct{}{} } if cfg.GetBool(discoveryNS("enabled")) { diff --git a/cmd/system-probe/config/config_test.go b/cmd/system-probe/config/config_test.go index b4ba8f4ae22f0..091ba17cc9dab 100644 --- a/cmd/system-probe/config/config_test.go +++ b/cmd/system-probe/config/config_test.go @@ -113,3 +113,29 @@ func TestEnableDiscovery(t *testing.T) { assert.False(t, cfg.GetBool(discoveryNS("enabled"))) }) } + +func TestNetworkPath(t *testing.T) { + mock.NewSystemProbe(t) + + for i, tc := range []struct { + traceroute, connectionsMonitoring bool + usmEvents bool + enabled bool + }{ + {traceroute: false, connectionsMonitoring: false, enabled: false}, + {traceroute: true, connectionsMonitoring: false, enabled: true}, + {traceroute: true, connectionsMonitoring: true, enabled: true}, + {traceroute: false, connectionsMonitoring: true, enabled: true}, + } { + t.Run(fmt.Sprintf("index_%d", i), func(t *testing.T) { + t.Logf("%+v\n", tc) + t.Setenv("DD_TRACEROUTE_ENABLED", strconv.FormatBool(tc.traceroute)) + t.Setenv("DD_NETWORK_PATH_CONNECTIONS_MONITORING_ENABLED", strconv.FormatBool(tc.connectionsMonitoring)) + + cfg, err := New("/doesnotexist", "") + t.Logf("%+v\n", cfg) + require.NoError(t, err) + assert.Equal(t, tc.enabled, cfg.ModuleIsEnabled(TracerouteModule)) + }) + } +} diff --git a/cmd/system-probe/config/ns.go b/cmd/system-probe/config/ns.go index 59f519ddb26d9..92d500f8dcb6a 100644 --- a/cmd/system-probe/config/ns.go +++ b/cmd/system-probe/config/ns.go @@ -67,6 +67,11 @@ func tracerouteNS(k ...string) string { return NSkey("traceroute", k...) } +// npNS adds `network_path` namespace to config key +func npNS(k ...string) string { + return NSkey("network_path", k...) +} + // discoveryNS adds `discovery` namespace to config key func discoveryNS(k ...string) string { return NSkey("discovery", k...) diff --git a/pkg/config/setup/system_probe.go b/pkg/config/setup/system_probe.go index 166406736be11..243c4486f24a9 100644 --- a/pkg/config/setup/system_probe.go +++ b/pkg/config/setup/system_probe.go @@ -30,6 +30,7 @@ const ( wcdNS = "windows_crash_detection" pngNS = "ping" tracerouteNS = "traceroute" + npNS = "network_path" discoveryNS = "discovery" gpuNS = "gpu_monitoring" defaultConnsMessageBatchSize = 600 @@ -412,8 +413,9 @@ func InitSystemProbeConfig(cfg pkgconfigmodel.Config) { // Ping cfg.BindEnvAndSetDefault(join(pngNS, "enabled"), false) - // Traceroute + // Traceroute / Network Path cfg.BindEnvAndSetDefault(join(tracerouteNS, "enabled"), false) + cfg.BindEnvAndSetDefault(join(npNS, "connections_monitoring.enabled"), false) // CCM config cfg.BindEnvAndSetDefault(join(ccmNS, "enabled"), false)