@@ -286,3 +286,66 @@ func Test_promoteTraceAndSpan(t *testing.T) {
286
286
})
287
287
}
288
288
}
289
+
290
+ func Test_promoteResourceAttrs (t * testing.T ) {
291
+ t .Run ("single log" , func (t * testing.T ) {
292
+ rl := plog .NewResourceLogs ()
293
+ l := plog .NewLogRecord ()
294
+ l .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
295
+
296
+ promoteResourceAttrs (& l , & rl )
297
+
298
+ val , ok := rl .Resource ().Attributes ().Get ("r1" )
299
+ assert .True (t , ok )
300
+ assert .Equal (t , "v1" , val .Str ())
301
+ })
302
+
303
+ t .Run ("two logs" , func (t * testing.T ) {
304
+ rl := plog .NewResourceLogs ()
305
+ l1 := plog .NewLogRecord ()
306
+ l1 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
307
+ l2 := plog .NewLogRecord ()
308
+ l2 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r2" : "v2" }})
309
+
310
+ promoteResourceAttrs (& l1 , & rl )
311
+ promoteResourceAttrs (& l2 , & rl )
312
+
313
+ v1 , ok := rl .Resource ().Attributes ().Get ("r1" )
314
+ assert .True (t , ok )
315
+ assert .Equal (t , "v1" , v1 .Str ())
316
+
317
+ v2 , ok := rl .Resource ().Attributes ().Get ("r2" )
318
+ assert .True (t , ok )
319
+ assert .Equal (t , "v2" , v2 .Str ())
320
+ })
321
+
322
+ t .Run ("last wins" , func (t * testing.T ) {
323
+ rl := plog .NewResourceLogs ()
324
+ l1 := plog .NewLogRecord ()
325
+ l1 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
326
+ l2 := plog .NewLogRecord ()
327
+ l2 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v2" }})
328
+
329
+ promoteResourceAttrs (& l1 , & rl )
330
+ promoteResourceAttrs (& l2 , & rl )
331
+
332
+ v2 , ok := rl .Resource ().Attributes ().Get ("r1" )
333
+ assert .True (t , ok )
334
+ assert .Equal (t , "v2" , v2 .Str ())
335
+ })
336
+
337
+ t .Run ("overwrite original" , func (t * testing.T ) {
338
+ rl := plog .NewResourceLogs ()
339
+ rl .Resource ().Attributes ().FromRaw (map [string ]any {"r1" : "original" })
340
+ l1 := plog .NewLogRecord ()
341
+ l1 .Attributes ().FromRaw (map [string ]any {"resource" : map [string ]any {"r1" : "v1" }})
342
+
343
+ promoteResourceAttrs (& l1 , & rl )
344
+
345
+ v1 , ok := rl .Resource ().Attributes ().Get ("r1" )
346
+ assert .True (t , ok )
347
+ assert .Equal (t , "v1" , v1 .Str ())
348
+
349
+ })
350
+
351
+ }
0 commit comments