@@ -451,6 +451,24 @@ def test_span_to_envelope_client_http(self):
451
451
envelope = exporter ._span_to_envelope (span )
452
452
self .assertEqual (envelope .data .base_data .target , "www.example.com" )
453
453
454
+ span ._attributes = {
455
+ "http.request.method" : "GET" ,
456
+ "gen_ai.system" : "az.ai.inference"
457
+ }
458
+ envelope = exporter ._span_to_envelope (span )
459
+ self .assertEqual (envelope .data .base_data .target , "az.ai.inference" )
460
+ self .assertEqual (envelope .data .base_data .name , "GET /" )
461
+
462
+ span ._attributes = {
463
+ "http.request.method" : "GET" ,
464
+ "server.address" : "www.example.com" ,
465
+ "server.port" : 80 ,
466
+ "url.scheme" : "http" ,
467
+ "gen_ai.system" : "az.ai.inference"
468
+ }
469
+ envelope = exporter ._span_to_envelope (span )
470
+ self .assertEqual (envelope .data .base_data .target , "www.example.com" )
471
+
454
472
# url
455
473
# spell-checker:ignore ddds
456
474
span ._attributes = {
@@ -773,8 +791,60 @@ def test_span_to_envelope_client_gen_ai(self):
773
791
self .assertEqual (envelope .data .base_data .result_code , "0" )
774
792
775
793
self .assertEqual (envelope .data .base_type , "RemoteDependencyData" )
776
- self .assertEqual (envelope .data .base_data .type , "az.ai.inference" )
794
+ self .assertEqual (envelope .data .base_data .type , "GenAI | az.ai.inference" )
795
+ self .assertEqual (envelope .data .base_data .target , "az.ai.inference" )
777
796
self .assertEqual (len (envelope .data .base_data .properties ), 1 )
797
+
798
+ def test_span_to_envelope_client_internal_gen_ai_type (self ):
799
+ exporter = self ._exporter
800
+ start_time = 1575494316027613500
801
+ end_time = start_time + 1001000000
802
+
803
+ span = trace ._Span (
804
+ name = "test" ,
805
+ context = SpanContext (
806
+ trace_id = 36873507687745823477771305566750195431 ,
807
+ span_id = 12030755672171557337 ,
808
+ is_remote = False ,
809
+ ),
810
+ attributes = {
811
+ "gen_ai.system" : "az.ai.inference" ,
812
+ },
813
+ kind = SpanKind .INTERNAL ,
814
+ )
815
+ span .start (start_time = start_time )
816
+ span .end (end_time = end_time )
817
+ span ._status = Status (status_code = StatusCode .UNSET )
818
+ envelope = exporter ._span_to_envelope (span )
819
+ self .assertEqual (envelope .data .base_data .type , "GenAI | az.ai.inference" )
820
+
821
+ def test_span_to_envelope_client_multiple_types_with_gen_ai (self ):
822
+ exporter = self ._exporter
823
+ start_time = 1575494316027613500
824
+ end_time = start_time + 1001000000
825
+
826
+ span = trace ._Span (
827
+ name = "test" ,
828
+ context = SpanContext (
829
+ trace_id = 36873507687745823477771305566750195431 ,
830
+ span_id = 12030755672171557337 ,
831
+ is_remote = False ,
832
+ ),
833
+ attributes = {
834
+ "gen_ai.system" : "az.ai.inference" ,
835
+ "az.namespace" : "Microsoft.EventHub" ,
836
+ "peer.address" : "test_address" ,
837
+ "message_bus.destination" : "test_destination" ,
838
+ },
839
+ kind = SpanKind .CLIENT ,
840
+ )
841
+ span .start (start_time = start_time )
842
+ span .end (end_time = end_time )
843
+ span ._status = Status (status_code = StatusCode .UNSET )
844
+ envelope = exporter ._span_to_envelope (span )
845
+
846
+ self .assertEqual (envelope .data .base_data .type , "GenAI | az.ai.inference" )
847
+ self .assertEqual (envelope .data .base_data .target , "test_address/test_destination" )
778
848
779
849
def test_span_to_envelope_client_azure (self ):
780
850
exporter = self ._exporter
0 commit comments