1515package logs
1616
1717import (
18+ "context"
1819 "fmt"
1920 "testing"
2021
2122 "github.com/DataDog/datadog-api-client-go/v2/api/datadog"
2223 "github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
24+ "github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes"
2325 "github.com/stretchr/testify/assert"
26+ "github.com/stretchr/testify/require"
27+ "go.opentelemetry.io/collector/component/componenttest"
2428 "go.opentelemetry.io/collector/pdata/pcommon"
2529 "go.opentelemetry.io/collector/pdata/plog"
2630 conventions "go.opentelemetry.io/collector/semconv/v1.6.1"
2731 "go.uber.org/zap/zaptest"
2832)
2933
30- func TestTransform (t * testing.T ) {
31- testLogger := zaptest .NewLogger (t )
34+ func TestTranslator (t * testing.T ) {
3235 traceID := [16 ]byte {0x08 , 0x02 , 0x03 , 0x04 , 0x05 , 0x06 , 0x07 , 0x08 , 0x0 , 0x0 , 0x0 , 0x0 , 0x0a }
3336 var spanID [8 ]byte
3437 copy (spanID [:], traceID [8 :])
@@ -57,7 +60,7 @@ func TestTransform(t *testing.T) {
5760 res : pcommon .NewResource (),
5861 },
5962 want : datadogV2.HTTPLogItem {
60- Ddtags : datadog .PtrString ("" ),
63+ Ddtags : datadog .PtrString ("otel_source:test " ),
6164 Message : * datadog .PtrString ("" ),
6265 AdditionalProperties : map [string ]string {
6366 "app" : "test" ,
@@ -83,7 +86,7 @@ func TestTransform(t *testing.T) {
8386 }(),
8487 },
8588 want : datadogV2.HTTPLogItem {
86- Ddtags : datadog .PtrString ("service:otlp_col" ),
89+ Ddtags : datadog .PtrString ("service:otlp_col,otel_source:test " ),
8790 Message : * datadog .PtrString ("" ),
8891 Service : datadog .PtrString ("otlp_col" ),
8992 AdditionalProperties : map [string ]string {
@@ -112,7 +115,7 @@ func TestTransform(t *testing.T) {
112115 }(),
113116 },
114117 want : datadogV2.HTTPLogItem {
115- Ddtags : datadog .PtrString ("service:otlp_col,foo:bar" ),
118+ Ddtags : datadog .PtrString ("service:otlp_col,foo:bar,otel_source:test " ),
116119 Message : * datadog .PtrString ("" ),
117120 Service : datadog .PtrString ("otlp_col" ),
118121 AdditionalProperties : map [string ]string {
@@ -140,7 +143,7 @@ func TestTransform(t *testing.T) {
140143 }(),
141144 },
142145 want : datadogV2.HTTPLogItem {
143- Ddtags : datadog .PtrString ("" ),
146+ Ddtags : datadog .PtrString ("otel_source:test " ),
144147 Message : * datadog .PtrString ("" ),
145148 Service : datadog .PtrString ("otlp_col" ),
146149 AdditionalProperties : map [string ]string {
@@ -169,7 +172,7 @@ func TestTransform(t *testing.T) {
169172 }(),
170173 },
171174 want : datadogV2.HTTPLogItem {
172- Ddtags : datadog .PtrString ("" ),
175+ Ddtags : datadog .PtrString ("otel_source:test " ),
173176 Message : * datadog .PtrString ("" ),
174177 Service : datadog .PtrString ("otlp_col" ),
175178 AdditionalProperties : map [string ]string {
@@ -202,7 +205,7 @@ func TestTransform(t *testing.T) {
202205 }(),
203206 },
204207 want : datadogV2.HTTPLogItem {
205- Ddtags : datadog .PtrString ("" ),
208+ Ddtags : datadog .PtrString ("otel_source:test " ),
206209 Message : * datadog .PtrString ("" ),
207210 Service : datadog .PtrString ("otlp_col" ),
208211 AdditionalProperties : map [string ]string {
@@ -235,7 +238,7 @@ func TestTransform(t *testing.T) {
235238 }(),
236239 },
237240 want : datadogV2.HTTPLogItem {
238- Ddtags : datadog .PtrString ("" ),
241+ Ddtags : datadog .PtrString ("otel_source:test " ),
239242 Message : * datadog .PtrString ("" ),
240243 Service : datadog .PtrString ("otlp_col" ),
241244 AdditionalProperties : map [string ]string {
@@ -268,7 +271,7 @@ func TestTransform(t *testing.T) {
268271 }(),
269272 },
270273 want : datadogV2.HTTPLogItem {
271- Ddtags : datadog .PtrString ("" ),
274+ Ddtags : datadog .PtrString ("otel_source:test " ),
272275 Message : * datadog .PtrString ("" ),
273276 Service : datadog .PtrString ("otlp_col" ),
274277 AdditionalProperties : map [string ]string {
@@ -301,7 +304,7 @@ func TestTransform(t *testing.T) {
301304 }(),
302305 },
303306 want : datadogV2.HTTPLogItem {
304- Ddtags : datadog .PtrString ("" ),
307+ Ddtags : datadog .PtrString ("otel_source:test " ),
305308 Message : * datadog .PtrString ("" ),
306309 Service : datadog .PtrString ("otlp_col" ),
307310 AdditionalProperties : map [string ]string {
@@ -336,7 +339,7 @@ func TestTransform(t *testing.T) {
336339 }(),
337340 },
338341 want : datadogV2.HTTPLogItem {
339- Ddtags : datadog .PtrString ("" ),
342+ Ddtags : datadog .PtrString ("otel_source:test " ),
340343 Message : * datadog .PtrString ("" ),
341344 Service : datadog .PtrString ("otlp_col" ),
342345 AdditionalProperties : map [string ]string {
@@ -371,7 +374,7 @@ func TestTransform(t *testing.T) {
371374 }(),
372375 },
373376 want : datadogV2.HTTPLogItem {
374- Ddtags : datadog .PtrString ("" ),
377+ Ddtags : datadog .PtrString ("otel_source:test " ),
375378 Message : * datadog .PtrString ("" ),
376379 Service : datadog .PtrString ("otlp_col" ),
377380 AdditionalProperties : map [string ]string {
@@ -403,7 +406,7 @@ func TestTransform(t *testing.T) {
403406 }(),
404407 },
405408 want : datadogV2.HTTPLogItem {
406- Ddtags : datadog .PtrString ("service:otlp_col" ),
409+ Ddtags : datadog .PtrString ("service:otlp_col,otel_source:test " ),
407410 Message : * datadog .PtrString ("" ),
408411 Service : datadog .PtrString ("otlp_col" ),
409412 AdditionalProperties : map [string ]string {
@@ -432,7 +435,7 @@ func TestTransform(t *testing.T) {
432435 }(),
433436 },
434437 want : datadogV2.HTTPLogItem {
435- Ddtags : datadog .PtrString ("" ),
438+ Ddtags : datadog .PtrString ("otel_source:test " ),
436439 Message : * datadog .PtrString ("" ),
437440 AdditionalProperties : map [string ]string {
438441 "app" : "test" ,
@@ -471,7 +474,7 @@ func TestTransform(t *testing.T) {
471474 }(),
472475 },
473476 want : datadogV2.HTTPLogItem {
474- Ddtags : datadog .PtrString ("" ),
477+ Ddtags : datadog .PtrString ("otel_source:test " ),
475478 Message : * datadog .PtrString ("" ),
476479 AdditionalProperties : map [string ]string {
477480 "root.nest1.nest2" : "val" ,
@@ -495,7 +498,7 @@ func TestTransform(t *testing.T) {
495498 }(),
496499 },
497500 want : datadogV2.HTTPLogItem {
498- Ddtags : datadog .PtrString ("" ),
501+ Ddtags : datadog .PtrString ("otel_source:test " ),
499502 Message : * datadog .PtrString ("" ),
500503 AdditionalProperties : map [string ]string {
501504 "status" : "" ,
@@ -545,7 +548,7 @@ func TestTransform(t *testing.T) {
545548 }(),
546549 },
547550 want : datadogV2.HTTPLogItem {
548- Ddtags : datadog .PtrString ("" ),
551+ Ddtags : datadog .PtrString ("otel_source:test " ),
549552 Message : * datadog .PtrString ("" ),
550553 AdditionalProperties : map [string ]string {
551554 "nest1.nest2.nest3.nest4.nest5.nest6.nest7.nest8.nest9.nest10" : "{\" nest11\" :{\" nest12\" :\" ok\" }}" ,
@@ -569,7 +572,7 @@ func TestTransform(t *testing.T) {
569572 }(),
570573 },
571574 want : datadogV2.HTTPLogItem {
572- Ddtags : datadog .PtrString ("" ),
575+ Ddtags : datadog .PtrString ("otel_source:test " ),
573576 Message : * datadog .PtrString ("" ),
574577 AdditionalProperties : map [string ]string {
575578 "status" : "debug" ,
@@ -580,9 +583,24 @@ func TestTransform(t *testing.T) {
580583 },
581584 },
582585 }
586+
587+ set := componenttest .NewNopTelemetrySettings ()
588+ set .Logger = zaptest .NewLogger (t )
589+ attributesTranslator , err := attributes .NewTranslator (set )
590+ require .NoError (t , err )
591+ translator , err := NewTranslator (set , attributesTranslator , "test" )
592+ require .NoError (t , err )
593+
583594 for _ , tt := range tests {
584595 t .Run (tt .name , func (t * testing.T ) {
585- got := Transform (tt .args .lr , tt .args .res , testLogger )
596+ logs := plog .NewLogs ()
597+ rl := logs .ResourceLogs ().AppendEmpty ()
598+ tt .args .res .MoveTo (rl .Resource ())
599+ tt .args .lr .CopyTo (rl .ScopeLogs ().AppendEmpty ().LogRecords ().AppendEmpty ())
600+
601+ payloads := translator .MapLogs (context .Background (), logs )
602+ require .Len (t , payloads , 1 )
603+ got := payloads [0 ]
586604
587605 gs , err := got .MarshalJSON ()
588606 if err != nil {
0 commit comments