MCPcopy
hub / github.com/wavetermdev/waveterm / sendAIMetricsTelemetry

Function sendAIMetricsTelemetry

pkg/aiusechat/usechat.go:593–622  ·  view source on GitHub ↗
(ctx context.Context, metrics *uctypes.AIMetrics)

Source from the content-addressed store, hash-verified

591}
592
593func sendAIMetricsTelemetry(ctx context.Context, metrics *uctypes.AIMetrics) {
594 event := telemetrydata.MakeTEvent("waveai:post", telemetrydata.TEventProps{
595 WaveAIAPIType: metrics.Usage.APIType,
596 WaveAIModel: metrics.Usage.Model,
597 WaveAIChatId: metrics.ChatId,
598 WaveAIStepNum: metrics.StepNum,
599 WaveAIInputTokens: metrics.Usage.InputTokens,
600 WaveAIOutputTokens: metrics.Usage.OutputTokens,
601 WaveAINativeWebSearchCount: metrics.Usage.NativeWebSearchCount,
602 WaveAIRequestCount: metrics.RequestCount,
603 WaveAIToolUseCount: metrics.ToolUseCount,
604 WaveAIToolUseErrorCount: metrics.ToolUseErrorCount,
605 WaveAIToolDetail: metrics.ToolDetail,
606 WaveAIPremiumReq: metrics.PremiumReqCount,
607 WaveAIProxyReq: metrics.ProxyReqCount,
608 WaveAIHadError: metrics.HadError,
609 WaveAIImageCount: metrics.ImageCount,
610 WaveAIPDFCount: metrics.PDFCount,
611 WaveAITextDocCount: metrics.TextDocCount,
612 WaveAITextLen: metrics.TextLen,
613 WaveAIFirstByteMs: metrics.FirstByteLatency,
614 WaveAIRequestDurMs: metrics.RequestDuration,
615 WaveAIWidgetAccess: metrics.WidgetAccess,
616 WaveAIThinkingLevel: metrics.ThinkingLevel,
617 WaveAIMode: metrics.AIMode,
618 WaveAIProvider: metrics.AIProvider,
619 WaveAIIsLocal: metrics.IsLocal,
620 })
621 _ = telemetry.RecordTEvent(ctx, event)
622}
623
624// PostMessageRequest represents the request body for posting a message
625type PostMessageRequest struct {

Callers 1

WaveAIPostMessageWrapFunction · 0.85

Calls 2

MakeTEventFunction · 0.92
RecordTEventFunction · 0.92

Tested by

no test coverage detected