Skip to content

Commit

Permalink
add more changes to make the telemetry client work
Browse files Browse the repository at this point in the history
Signed-off-by: Eliott Bouhana <eliott.bouhana@datadoghq.com>
  • Loading branch information
eliottness committed Jan 31, 2025
1 parent 8430168 commit bae4771
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 82 deletions.
14 changes: 7 additions & 7 deletions contrib/internal/telemetrytest/telemetry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import (
"gopkg.in/DataDog/dd-trace-go.v1/internal/telemetry"
"gopkg.in/DataDog/dd-trace-go.v1/internal/telemetry/telemetrytest"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)

Expand All @@ -25,12 +24,13 @@ import (
func TestIntegrationInfo(t *testing.T) {
// mux.NewRouter() uses the net/http and gorilla/mux integration
client := new(telemetrytest.MockClient)
telemetry.SwapClient(client)
mux.NewRouter()
integrations := client.Integrations
require.Len(t, integrations, 2)
assert.Equal(t, integrations[0].Name, "net/http")
assert.Equal(t, integrations[1].Name, "gorilla/mux")
client.On("AppStart").Return()
client.On("MarkIntegrationAsLoaded", telemetry.Integration{Name: "net/http", Version: "", Error: ""}).Return()
client.On("MarkIntegrationAsLoaded", telemetry.Integration{Name: "gorilla/mux", Version: "", Error: ""}).Return()
telemetry.StartApp(client)
_ = mux.NewRouter()

client.AssertExpectations(t)
}

type contribPkg struct {
Expand Down
3 changes: 1 addition & 2 deletions ddtrace/opentelemetry/telemetry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ func TestTelemetry(t *testing.T) {
for k, v := range test.env {
t.Setenv(k, v)
}
telemetryClient := new(telemetrytest.MockClient)
telemetryClient := new(telemetrytest.RecordClient)
original := telemetry.GlobalClient()
telemetry.SwapClient(telemetryClient)
defer telemetry.SwapClient(original)
Expand All @@ -82,7 +82,6 @@ func TestTelemetry(t *testing.T) {
p.Tracer("")
defer p.Shutdown()

assert.True(t, telemetryClient.Started)
assert.Contains(t, telemetryClient.Configuration, telemetry.Configuration{Name: "trace_propagation_style_inject", Value: test.expectedInject})
assert.Contains(t, telemetryClient.Configuration, telemetry.Configuration{Name: "trace_propagation_style_extract", Value: test.expectedExtract})
})
Expand Down
5 changes: 2 additions & 3 deletions ddtrace/opentelemetry/tracer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,16 +195,15 @@ func TestShutdownOnce(t *testing.T) {
}

func TestSpanTelemetry(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
telemetryClient := new(telemetrytest.RecordClient)
original := telemetry.GlobalClient()
telemetry.SwapClient(telemetryClient)
defer telemetry.SwapClient(original)
tp := NewTracerProvider()
otel.SetTracerProvider(tp)
tr := otel.Tracer("")
_, _ = tr.Start(context.Background(), "otel.span")
telemetryClient.AssertCalled(t, "Count", telemetry.NamespaceTracers, "spans_created", telemetryTags)
telemetryClient.AssertNumberOfCalls(t, "Count", 1)
assert.NotZero(t, telemetryClient.Count(telemetry.NamespaceTracers, "spans_created", telemetryTags).Get())
}

func TestConcurrentSetAttributes(_ *testing.T) {
Expand Down
12 changes: 10 additions & 2 deletions ddtrace/tracer/otel_dd_mappings_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ func TestAssessSource(t *testing.T) {
})
t.Run("both", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
metricHandle := new(telemetrytest.MockMetricHandle)
telemetryClient.On("Count", telemetry.NamespaceTracers, "otel.env.hiding", []string{"config_datadog:dd_service", "config_opentelemetry:otel_service_name"}).Return(metricHandle)
metricHandle.On("Submit", 1.0)
original := telemetry.GlobalClient()
telemetry.SwapClient(telemetryClient)
defer telemetry.SwapClient(original)
Expand All @@ -38,16 +41,21 @@ func TestAssessSource(t *testing.T) {
t.Setenv("OTEL_SERVICE_NAME", "123")
v := getDDorOtelConfig("service")
assert.Equal(t, "abc", v)
telemetryClient.AssertCalled(t, "Count", telemetry.NamespaceTracers, "otel.env.hiding", 1.0, []string{"config_datadog:dd_service", "config_opentelemetry:otel_service_name"}, true)
telemetryClient.AssertExpectations(t)
metricHandle.AssertExpectations(t)
})
t.Run("invalid-ot", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
metricHandle := new(telemetrytest.MockMetricHandle)
telemetryClient.On("Count", telemetry.NamespaceTracers, "otel.env.invalid", []string{"config_datadog:dd_service", "config_opentelemetry:otel_service_name"}).Return(metricHandle)
metricHandle.On("Submit", 1.0)
original := telemetry.GlobalClient()
telemetry.SwapClient(telemetryClient)
defer telemetry.SwapClient(original)
t.Setenv("OTEL_LOG_LEVEL", "nonesense")
v := getDDorOtelConfig("debugMode")
assert.Equal(t, "", v)
telemetryClient.AssertCalled(t, "Count", telemetry.NamespaceTracers, "otel.env.invalid", 1.0, []string{"config_datadog:dd_trace_debug", "config_opentelemetry:otel_log_level"}, true)
telemetryClient.AssertExpectations(t)
metricHandle.AssertExpectations(t)
})
}
28 changes: 14 additions & 14 deletions ddtrace/tracer/remote_config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
func TestOnRemoteConfigUpdate(t *testing.T) {
t.Run("RC sampling rate = 0.5 is applied and can be reverted", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

tracer, _, _, stop := startTestTracer(t, WithService("my-service"), WithEnv("my-env"))
defer stop()
Expand Down Expand Up @@ -96,7 +96,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("DD_TRACE_SAMPLE_RATE=0.1 and RC sampling rate = 0.2", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

t.Setenv("DD_TRACE_SAMPLE_RATE", "0.1")
tracer, _, _, stop := startTestTracer(t, WithService("my-service"), WithEnv("my-env"))
Expand Down Expand Up @@ -145,7 +145,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("DD_TRACE_SAMPLING_RULES rate=0.1 and RC trace sampling rules rate = 1.0", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

t.Setenv("DD_TRACE_SAMPLING_RULES", `[{
"service": "my-service",
Expand Down Expand Up @@ -205,7 +205,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("DD_TRACE_SAMPLING_RULES=0.1 and RC rule rate=1.0 and revert", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

t.Setenv("DD_TRACE_SAMPLING_RULES", `[{
"service": "my-service",
Expand Down Expand Up @@ -288,7 +288,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("RC rule with tags", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()
tracer, _, _, stop := startTestTracer(t, WithService("my-service"), WithEnv("my-env"))
defer stop()

Expand Down Expand Up @@ -334,7 +334,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {
t.Run("RC header tags = X-Test-Header:my-tag-name is applied and can be reverted", func(t *testing.T) {
defer globalconfig.ClearHeaderTags()
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

tracer, _, _, stop := startTestTracer(t, WithService("my-service"), WithEnv("my-env"))
defer stop()
Expand Down Expand Up @@ -380,7 +380,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("RC tracing_enabled = false is applied", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

tr, _, _, stop := startTestTracer(t, WithService("my-service"), WithEnv("my-env"))
defer stop()
Expand Down Expand Up @@ -437,7 +437,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {
func(t *testing.T) {
defer globalconfig.ClearHeaderTags()
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

t.Setenv("DD_TRACE_HEADER_TAGS", "X-Test-Header:my-tag-name-from-env")
tracer, _, _, stop := startTestTracer(t, WithService("my-service"), WithEnv("my-env"))
Expand Down Expand Up @@ -490,7 +490,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {
func(t *testing.T) {
defer globalconfig.ClearHeaderTags()
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

tracer, _, _, stop := startTestTracer(
t,
Expand Down Expand Up @@ -544,7 +544,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("Invalid payload", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

tracer, _, _, stop := startTestTracer(t, WithService("my-service"), WithEnv("my-env"))
defer stop()
Expand All @@ -566,7 +566,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("Service mismatch", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

tracer, _, _, stop := startTestTracer(t, WithServiceName("my-service"), WithEnv("my-env"))
defer stop()
Expand All @@ -586,7 +586,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("Env mismatch", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

tracer, _, _, stop := startTestTracer(t, WithServiceName("my-service"), WithEnv("my-env"))
defer stop()
Expand All @@ -606,7 +606,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {

t.Run("DD_TAGS=key0:val0,key1:val1, WithGlobalTag=key2:val2 and RC tags = key3:val3,key4:val4", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

t.Setenv("DD_TAGS", "key0:val0,key1:val1")
tracer, _, _, stop := startTestTracer(
Expand Down Expand Up @@ -677,7 +677,7 @@ func TestOnRemoteConfigUpdate(t *testing.T) {
t.Run("Deleted config", func(t *testing.T) {
defer globalconfig.ClearHeaderTags()
telemetryClient := new(telemetrytest.MockClient)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()

t.Setenv("DD_TRACE_SAMPLE_RATE", "0.1")
t.Setenv("DD_TRACE_HEADER_TAGS", "X-Test-Header:my-tag-from-env")
Expand Down
2 changes: 1 addition & 1 deletion ddtrace/tracer/spancontext_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ func TestPartialFlush(t *testing.T) {
t.Run("WithFlush", func(t *testing.T) {
telemetryClient := new(telemetrytest.MockClient)
telemetryClient.ProductStarted(telemetry.NamespaceTracers)
defer mockGlobalClient(telemetryClient)()
defer testTelemetryClient(telemetryClient)()
tracer, transport, flush, stop := startTestTracer(t)
defer stop()

Expand Down
Loading

0 comments on commit bae4771

Please sign in to comment.