@@ -573,7 +573,7 @@ func TestDestinationSourceTagBasedOnTelemetryName(t *testing.T) {
573
573
// Create telemetry mock
574
574
telemetryMock := fxutil .Test [telemetry.Component ](t , telemetryimpl .MockModule ())
575
575
metrics .TlmBytesSent = telemetryMock .NewCounter ("logs" , "bytes_sent" , []string {"source" }, "" )
576
- metrics .TlmEncodedBytesSent = telemetryMock .NewCounter ("logs" , "encoded_bytes_sent" , []string {"source" }, "" )
576
+ metrics .TlmEncodedBytesSent = telemetryMock .NewCounter ("logs" , "encoded_bytes_sent" , []string {"source" , "compression_kind" }, "" )
577
577
578
578
// Create a new server
579
579
server := NewTestServer (200 , cfg )
@@ -610,7 +610,7 @@ func TestDestinationSourceTagEPForwarder(t *testing.T) {
610
610
// Create telemetry mock
611
611
telemetryMock := fxutil .Test [telemetry.Component ](t , telemetryimpl .MockModule ())
612
612
metrics .TlmBytesSent = telemetryMock .NewCounter ("logs" , "bytes_sent" , []string {"source" }, "" )
613
- metrics .TlmEncodedBytesSent = telemetryMock .NewCounter ("logs" , "encoded_bytes_sent" , []string {"source" }, "" )
613
+ metrics .TlmEncodedBytesSent = telemetryMock .NewCounter ("logs" , "encoded_bytes_sent" , []string {"source" , "compression_kind" }, "" )
614
614
615
615
// Create a new server
616
616
server := NewTestServer (200 , cfg )
@@ -638,3 +638,57 @@ func TestDestinationSourceTagEPForwarder(t *testing.T) {
638
638
assert .Len (t , metric , 1 )
639
639
assert .Equal (t , "epforwarder" , metric [0 ].Tags ()["source" ])
640
640
}
641
+
642
+ // TestDestinationCompression tests what the compression kind is set when compression is used
643
+ func TestDestinationCompression (t * testing.T ) {
644
+ cfg := configmock .New (t )
645
+
646
+ // Create telemetry mock
647
+ telemetryMock := fxutil .Test [telemetry.Component ](t , telemetryimpl .MockModule ())
648
+ metrics .TlmEncodedBytesSent = telemetryMock .NewCounter ("logs" , "encoded_bytes_sent" , []string {"source" , "compression_kind" }, "" )
649
+
650
+ // Create a new server with compression enabled
651
+ server := NewTestServer (200 , cfg )
652
+ defer server .httpServer .Close ()
653
+
654
+ // Enable compression and set zstdcompression kind
655
+ server .Destination .endpoint .UseCompression = true
656
+ server .Destination .endpoint .CompressionKind = "zstd"
657
+
658
+ // Test case 1: Telemetry uses zstd compression
659
+ server .Destination .destMeta = client .NewDestinationMetadata ("dbm" , "1" , "reliable" , "0" )
660
+ payload := & message.Payload {
661
+ Encoded : []byte ("payload" ),
662
+ UnencodedSize : 7 , // len("payload")
663
+ }
664
+
665
+ err := server .Destination .unconditionalSend (payload )
666
+ assert .Nil (t , err )
667
+ assert .Equal (t , "dbm_1_reliable_0" , server .Destination .destMeta .TelemetryName ())
668
+
669
+ // Verify the compression tag is set correctly
670
+ metric , err := telemetryMock .(telemetry.Mock ).GetCountMetric ("logs" , "encoded_bytes_sent" )
671
+ assert .NoError (t , err )
672
+ assert .Len (t , metric , 1 )
673
+ assert .Equal (t , "zstd" , metric [0 ].Tags ()["compression_kind" ])
674
+
675
+ // Test case 2: Telemetry uses gzip compression
676
+ // Enable compression and set gzip compression kind
677
+ server .Destination .endpoint .CompressionKind = "gzip"
678
+
679
+ server .Destination .destMeta = client .NewDestinationMetadata ("dbm" , "2" , "reliable" , "0" )
680
+ payload2 := & message.Payload {
681
+ Encoded : []byte ("payload" ),
682
+ UnencodedSize : 7 ,
683
+ }
684
+
685
+ err = server .Destination .unconditionalSend (payload2 )
686
+ assert .Nil (t , err )
687
+ assert .Equal (t , "dbm_2_reliable_0" , server .Destination .destMeta .TelemetryName ())
688
+
689
+ // Verify the compression tag is set correctly
690
+ metric , err = telemetryMock .(telemetry.Mock ).GetCountMetric ("logs" , "encoded_bytes_sent" )
691
+ assert .NoError (t , err )
692
+ assert .Len (t , metric , 2 )
693
+ assert .Equal (t , "gzip" , metric [0 ].Tags ()["compression_kind" ])
694
+ }
0 commit comments