From 3396ec173abfae1ae4559dffb14ca23bfa192476 Mon Sep 17 00:00:00 2001 From: Mikayla Toffler Date: Thu, 2 May 2024 17:51:13 -0400 Subject: [PATCH 1/3] Add tracer test to ensure global config accurately inherits UDS tracer address --- ddtrace/tracer/option_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ddtrace/tracer/option_test.go b/ddtrace/tracer/option_test.go index 71eaac7587..86801f2c29 100644 --- a/ddtrace/tracer/option_test.go +++ b/ddtrace/tracer/option_test.go @@ -494,6 +494,30 @@ func TestTracerOptionsDefaults(t *testing.T) { assert.Equal(t, c.dogstatsdAddr, "10.1.0.12:4002") assert.Equal(t, globalconfig.DogstatsdAddr(), "10.1.0.12:4002") }) + t.Run("uds", func(t *testing.T) { + assert := assert.New(t) + dir, err := os.MkdirTemp("", "socket") + if err != nil { + t.Fatal("Failed to create socket") + } + udsPath := filepath.Join(dir, "apm.socket") + defer os.RemoveAll(udsPath) + unixListener, err := net.Listen("unix", udsPath) + if err != nil { + t.Fatal("Failed to create listener") + } + var hits int + srv := http.Server{Handler: http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) { + hits++ + })} + go srv.Serve(unixListener) + defer srv.Close() + tracer := newTracer(WithDogstatsdAddress(udsPath)) + defer tracer.Stop() + c := tracer.config + assert.Equal(udsPath, c.dogstatsdAddr) + assert.Equal(udsPath, globalconfig.DogstatsdAddr()) + }) }) t.Run("env-agentAddr", func(t *testing.T) { From 847f04701a93a5affb4ddede62be2f29dc4bcaf4 Mon Sep 17 00:00:00 2001 From: Mikayla Toffler Date: Thu, 9 May 2024 16:29:37 -0400 Subject: [PATCH 2/3] Add check for globalconfig inheriting auto-detected uds address --- ddtrace/tracer/option_test.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ddtrace/tracer/option_test.go b/ddtrace/tracer/option_test.go index 86801f2c29..b562848c5d 100644 --- a/ddtrace/tracer/option_test.go +++ b/ddtrace/tracer/option_test.go @@ -135,6 +135,8 @@ func TestAutoDetectStatsd(t *testing.T) { require.NoError(t, err) defer statsd.Close() require.Equal(t, cfg.dogstatsdAddr, "unix://"+addr) + // Ensure globalconfig also gets the auto-detected UDS address + require.Equal(t, "unix://"+addr, globalconfig.DogstatsdAddr()) statsd.Count("name", 1, []string{"tag"}, 1) buf := make([]byte, 17) @@ -500,7 +502,7 @@ func TestTracerOptionsDefaults(t *testing.T) { if err != nil { t.Fatal("Failed to create socket") } - udsPath := filepath.Join(dir, "apm.socket") + udsPath := filepath.Join(dir, "dsd.socket") defer os.RemoveAll(udsPath) unixListener, err := net.Listen("unix", udsPath) if err != nil { From 9c774d2694c658d901dccc83068c1133e956e7a0 Mon Sep 17 00:00:00 2001 From: Mikayla Toffler <46911781+mtoffl01@users.noreply.github.com> Date: Fri, 5 Jul 2024 10:08:19 -0400 Subject: [PATCH 3/3] simplify uds test --- ddtrace/tracer/option_test.go | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/ddtrace/tracer/option_test.go b/ddtrace/tracer/option_test.go index b562848c5d..36c6f33eb3 100644 --- a/ddtrace/tracer/option_test.go +++ b/ddtrace/tracer/option_test.go @@ -502,23 +502,13 @@ func TestTracerOptionsDefaults(t *testing.T) { if err != nil { t.Fatal("Failed to create socket") } - udsPath := filepath.Join(dir, "dsd.socket") - defer os.RemoveAll(udsPath) - unixListener, err := net.Listen("unix", udsPath) - if err != nil { - t.Fatal("Failed to create listener") - } - var hits int - srv := http.Server{Handler: http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) { - hits++ - })} - go srv.Serve(unixListener) - defer srv.Close() - tracer := newTracer(WithDogstatsdAddress(udsPath)) + addr := filepath.Join(dir, "dsd.socket") + defer os.RemoveAll(addr) + tracer := newTracer(WithDogstatsdAddress("unix://" + addr)) defer tracer.Stop() c := tracer.config - assert.Equal(udsPath, c.dogstatsdAddr) - assert.Equal(udsPath, globalconfig.DogstatsdAddr()) + assert.Equal("unix://"+addr, c.dogstatsdAddr) + assert.Equal("unix://"+addr, globalconfig.DogstatsdAddr()) }) })