@@ -659,5 +659,59 @@ describe('Plugin', () => {
659
659
expect ( toolCallSpan ) . to . deepEqualWithMockValues ( expectedToolCallSpan )
660
660
expect ( llmSpan2 ) . to . deepEqualWithMockValues ( expectedLlmSpan2 )
661
661
} )
662
+
663
+ it ( 'creates a span that respects the functionId' , async ( ) => {
664
+ await ai . generateText ( {
665
+ model : openai ( 'gpt-4o-mini' ) ,
666
+ system : 'You are a helpful assistant' ,
667
+ prompt : 'Hello, OpenAI!' ,
668
+ maxTokens : 100 ,
669
+ temperature : 0.5 ,
670
+ experimental_telemetry : {
671
+ functionId : 'test'
672
+ }
673
+ } )
674
+
675
+ const { apmSpans, llmobsSpans } = await getEvents ( )
676
+
677
+ const expectedWorkflowSpan = expectedLLMObsNonLLMSpanEvent ( {
678
+ span : apmSpans [ 0 ] ,
679
+ name : 'test.generateText' ,
680
+ spanKind : 'workflow' ,
681
+ inputValue : 'Hello, OpenAI!' ,
682
+ outputValue : MOCK_STRING ,
683
+ metadata : {
684
+ maxTokens : 100 ,
685
+ temperature : 0.5 ,
686
+ maxSteps : MOCK_NUMBER ,
687
+ maxRetries : MOCK_NUMBER ,
688
+ } ,
689
+ tokenMetrics : { input_tokens : MOCK_NUMBER , output_tokens : MOCK_NUMBER , total_tokens : MOCK_NUMBER } ,
690
+ tags : { ml_app : 'test' , language : 'javascript' , integration : 'ai' } ,
691
+ } )
692
+
693
+ const expectedLlmSpan = expectedLLMObsLLMSpanEvent ( {
694
+ span : apmSpans [ 1 ] ,
695
+ parentId : llmobsSpans [ 0 ] . span_id ,
696
+ spanKind : 'llm' ,
697
+ modelName : 'gpt-4o-mini' ,
698
+ modelProvider : 'openai' ,
699
+ name : 'test.doGenerate' ,
700
+ inputMessages : [
701
+ { content : 'You are a helpful assistant' , role : 'system' } ,
702
+ { content : 'Hello, OpenAI!' , role : 'user' }
703
+ ] ,
704
+ outputMessages : [ { content : MOCK_STRING , role : 'assistant' } ] ,
705
+ metadata : {
706
+ max_tokens : 100 ,
707
+ temperature : 0.5 ,
708
+ } ,
709
+ tokenMetrics : { input_tokens : MOCK_NUMBER , output_tokens : MOCK_NUMBER , total_tokens : MOCK_NUMBER } ,
710
+ tags : { ml_app : 'test' , language : 'javascript' , integration : 'ai' } ,
711
+ } )
712
+
713
+ expect ( llmobsSpans [ 0 ] ) . to . deepEqualWithMockValues ( expectedWorkflowSpan )
714
+ expect ( llmobsSpans [ 1 ] ) . to . deepEqualWithMockValues ( expectedLlmSpan )
715
+ } )
662
716
} )
663
717
} )
0 commit comments