From d78ca5d1a8ffff60eaac445ca4edf1909a8078b0 Mon Sep 17 00:00:00 2001 From: Yang Song Date: Thu, 15 Feb 2024 10:57:15 -0500 Subject: [PATCH] [chore][exporter/datadog] Update integration_test to test peer service (#31265) --- exporter/datadogexporter/integrationtest/go.mod | 2 +- .../integrationtest/integration_test.go | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/exporter/datadogexporter/integrationtest/go.mod b/exporter/datadogexporter/integrationtest/go.mod index f0228c4f40d58..a7c9b2cb2efd9 100644 --- a/exporter/datadogexporter/integrationtest/go.mod +++ b/exporter/datadogexporter/integrationtest/go.mod @@ -24,6 +24,7 @@ require ( go.opentelemetry.io/otel v1.23.1 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.23.1 go.opentelemetry.io/otel/sdk v1.23.1 + go.opentelemetry.io/otel/trace v1.23.1 google.golang.org/protobuf v1.32.0 ) @@ -171,7 +172,6 @@ require ( go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.23.0 // indirect go.opentelemetry.io/otel/metric v1.23.1 // indirect go.opentelemetry.io/otel/sdk/metric v1.23.0 // indirect - go.opentelemetry.io/otel/trace v1.23.1 // indirect go.opentelemetry.io/proto/otlp v1.1.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect diff --git a/exporter/datadogexporter/integrationtest/integration_test.go b/exporter/datadogexporter/integrationtest/integration_test.go index aea78582cc388..94e3a47648c53 100644 --- a/exporter/datadogexporter/integrationtest/integration_test.go +++ b/exporter/datadogexporter/integrationtest/integration_test.go @@ -36,6 +36,7 @@ import ( "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" + apitrace "go.opentelemetry.io/otel/trace" "google.golang.org/protobuf/proto" "github.com/open-telemetry/opentelemetry-collector-contrib/connector/datadogconnector" @@ -121,6 +122,11 @@ func TestIntegration(t *testing.T) { assert.True(t, strings.HasPrefix(stat.Resource, "TestSpan")) assert.Equal(t, uint64(1), stat.Hits) assert.Equal(t, uint64(1), stat.TopLevelHits) + if tt.featureGateEnabled { + // Peer tags aggregation is supported only when the feature gate is enabled (it's enabled by default) + assert.Equal(t, "client", stat.SpanKind) + assert.Equal(t, []string{"extra_peer_tag:tag_val", "peer.service:svc"}, stat.PeerTags) + } } } } @@ -194,6 +200,10 @@ processors: connectors: datadog/connector: + traces: + compute_stats_by_span_kind: true + peer_tags_aggregation: true + peer_tags: ["extra_peer_tag"] exporters: debug: @@ -300,7 +310,7 @@ func sendTraces(t *testing.T) { tracer := otel.Tracer("test-tracer") for i := 0; i < 10; i++ { - _, span := tracer.Start(ctx, fmt.Sprintf("TestSpan%d", i)) + _, span := tracer.Start(ctx, fmt.Sprintf("TestSpan%d", i), apitrace.WithSpanKind(apitrace.SpanKindClient)) if i == 3 { // Send some traces from a different resource @@ -312,6 +322,8 @@ func sendTraces(t *testing.T) { if i < 5 { span.SetAttributes(attribute.Bool("sampled", true)) } + span.SetAttributes(attribute.String("peer.service", "svc")) + span.SetAttributes(attribute.String("extra_peer_tag", "tag_val")) span.End() } time.Sleep(1 * time.Second)