From 041ea031103019e4099fcb0a508e81feba531026 Mon Sep 17 00:00:00 2001 From: Kyle Nusbaum Date: Tue, 21 Jul 2020 13:10:24 -0500 Subject: [PATCH] Add tests --- ddtrace/tracer/option.go | 2 ++ ddtrace/tracer/option_test.go | 22 ++++++++++++++++++++++ ddtrace/tracer/tracer_test.go | 18 ++++++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/ddtrace/tracer/option.go b/ddtrace/tracer/option.go index 1eaa60386f..6116e070e2 100644 --- a/ddtrace/tracer/option.go +++ b/ddtrace/tracer/option.go @@ -143,6 +143,8 @@ func newConfig(opts ...StartOption) *config { c.logStartup = internal.BoolEnv("DD_TRACE_STARTUP_LOGS", true) if internal.BoolEnv("DD_TRACE_ANALYTICS_ENABLED", false) { globalconfig.SetAnalyticsRate(1.0) + } else { + globalconfig.SetAnalyticsRate(math.NaN()) } c.runtimeMetrics = internal.BoolEnv("DD_RUNTIME_METRICS_ENABLED", false) c.debug = internal.BoolEnv("DD_TRACE_DEBUG", false) diff --git a/ddtrace/tracer/option_test.go b/ddtrace/tracer/option_test.go index 5b091d4ac5..da0ae5d890 100644 --- a/ddtrace/tracer/option_test.go +++ b/ddtrace/tracer/option_test.go @@ -42,6 +42,7 @@ func TestTracerOptionsDefaults(t *testing.T) { t.Run("analytics", func(t *testing.T) { assert := assert.New(t) + defer globalconfig.SetAnalyticsRate(math.NaN()) assert.True(math.IsNaN(globalconfig.AnalyticsRate())) newTracer(WithAnalyticsRate(0.5)) assert.Equal(0.5, globalconfig.AnalyticsRate()) @@ -51,6 +52,27 @@ func TestTracerOptionsDefaults(t *testing.T) { assert.Equal(1., globalconfig.AnalyticsRate()) }) + t.Run("analyticsEnv", func(t *testing.T) { + assert := assert.New(t) + assert.True(math.IsNaN(globalconfig.AnalyticsRate())) + os.Setenv("DD_TRACE_ANALYTICS_ENABLED", "true") + defer os.Unsetenv("DD_TRACE_ANALYTICS_ENABLED") + newTracer() + assert.Equal(1.0, globalconfig.AnalyticsRate()) + os.Setenv("DD_TRACE_ANALYTICS_ENABLED", "false") + newTracer() + assert.True(math.IsNaN(globalconfig.AnalyticsRate())) + os.Setenv("DD_TRACE_ANALYTICS_ENABLED", "true") + newTracer(WithAnalytics(false)) + assert.True(math.IsNaN(globalconfig.AnalyticsRate())) + os.Setenv("DD_TRACE_ANALYTICS_ENABLED", "false") + newTracer(WithAnalytics(true)) + assert.Equal(1.0, globalconfig.AnalyticsRate()) + os.Setenv("DD_TRACE_ANALYTICS_ENABLED", "false") + newTracer(WithAnalyticsRate(0.5)) + assert.Equal(0.5, globalconfig.AnalyticsRate()) + }) + t.Run("dogstatsd", func(t *testing.T) { t.Run("default", func(t *testing.T) { tracer := newTracer() diff --git a/ddtrace/tracer/tracer_test.go b/ddtrace/tracer/tracer_test.go index 4d0cc78ae5..78faa8903c 100644 --- a/ddtrace/tracer/tracer_test.go +++ b/ddtrace/tracer/tracer_test.go @@ -226,6 +226,24 @@ func TestTracerRuntimeMetrics(t *testing.T) { assert.Contains(t, tp.Lines()[0], "DEBUG: Runtime metrics enabled") }) + t.Run("env", func(t *testing.T) { + os.Setenv("DD_RUNTIME_METRICS_ENABLED", "true") + defer os.Unsetenv("DD_RUNTIME_METRICS_ENABLED") + tp := new(testLogger) + tracer := newTracer(WithLogger(tp), WithDebugMode(true)) + defer tracer.Stop() + assert.Contains(t, tp.Lines()[0], "DEBUG: Runtime metrics enabled") + }) + + t.Run("overrideEnv", func(t *testing.T) { + os.Setenv("DD_RUNTIME_METRICS_ENABLED", "false") + defer os.Unsetenv("DD_RUNTIME_METRICS_ENABLED") + tp := new(testLogger) + tracer := newTracer(WithRuntimeMetrics(), WithLogger(tp), WithDebugMode(true)) + defer tracer.Stop() + assert.Contains(t, tp.Lines()[0], "DEBUG: Runtime metrics enabled") + }) + t.Run("off", func(t *testing.T) { tp := new(testLogger) tracer := newTracer(WithLogger(tp), WithDebugMode(true))