MCPcopy Create free account
hub / github.com/FlowiseAI/Flowise / _endOtelSpan

Method _endOtelSpan

packages/components/src/handler.ts:744–772  ·  view source on GitHub ↗

* Helper method to end an OpenTelemetry span with output, token usage, and model name attributes. * Used by arize, phoenix, and opik providers.

(
        providerName: string,
        returnIds: ICommonObject,
        outputText: string,
        usageMetadata?: { input_tokens?: number; output_tokens?: number; total_tokens?: number },
        modelName?: string
    )

Source from the content-addressed store, hash-verified

742 * Used by arize, phoenix, and opik providers.
743 */
744 private _endOtelSpan(
745 providerName: string,
746 returnIds: ICommonObject,
747 outputText: string,
748 usageMetadata?: { input_tokens?: number; output_tokens?: number; total_tokens?: number },
749 modelName?: string
750 ): void {
751 const llmSpan: Span | undefined = this.handlers[providerName]?.llmSpan?.[returnIds[providerName]?.llmSpan]
752 if (llmSpan) {
753 llmSpan.setAttribute('output.value', JSON.stringify(outputText))
754 llmSpan.setAttribute('output.mime_type', 'application/json')
755 if (usageMetadata) {
756 if (usageMetadata.input_tokens !== undefined) {
757 llmSpan.setAttribute('llm.token_count.prompt', usageMetadata.input_tokens)
758 }
759 if (usageMetadata.output_tokens !== undefined) {
760 llmSpan.setAttribute('llm.token_count.completion', usageMetadata.output_tokens)
761 }
762 if (usageMetadata.total_tokens !== undefined) {
763 llmSpan.setAttribute('llm.token_count.total', usageMetadata.total_tokens)
764 }
765 }
766 if (modelName) {
767 llmSpan.setAttribute('llm.model_name', modelName)
768 }
769 llmSpan.setStatus({ code: SpanStatusCode.OK })
770 llmSpan.end()
771 }
772 }
773
774 async init() {
775 if (this.initialized) return

Callers 1

onLLMEndMethod · 0.95

Calls 1

stringifyMethod · 0.80

Tested by

no test coverage detected