From 688f8cc4efb880c117a1aa93a38d9f01c5964b06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sat, 14 Mar 2026 14:44:24 +0800 Subject: [PATCH] service/ocm: only log new credential assignments and add websocket logging --- service/ocm/service.go | 34 ++++++++++++++------------------ service/ocm/service_websocket.go | 23 +++++++++++++++++---- 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/service/ocm/service.go b/service/ocm/service.go index db2467a28..9dded4740 100644 --- a/service/ocm/service.go +++ b/service/ocm/service.go @@ -437,7 +437,7 @@ func (s *Service) ServeHTTP(w http.ResponseWriter, r *http.Request) { } if strings.EqualFold(r.Header.Get("Upgrade"), "websocket") && strings.HasPrefix(path, "/v1/responses") { - s.handleWebSocket(w, r, path, username, sessionID, userConfig, provider, selectedCredential, credentialFilter) + s.handleWebSocket(w, r, path, username, sessionID, userConfig, provider, selectedCredential, credentialFilter, isNew) return } @@ -481,26 +481,22 @@ func (s *Service) ServeHTTP(w http.ResponseWriter, r *http.Request) { } } - var logParts []any if isNew { - logParts = append(logParts, "assigned credential ") - } else { - logParts = append(logParts, "credential ") + logParts := []any{"assigned credential ", selectedCredential.tagName()} + if sessionID != "" { + logParts = append(logParts, " for session ", sessionID) + } + if username != "" { + logParts = append(logParts, " by user ", username) + } + if requestModel != "" { + logParts = append(logParts, ", model=", requestModel) + } + if requestServiceTier == "priority" { + logParts = append(logParts, ", fast") + } + s.logger.Debug(logParts...) } - logParts = append(logParts, selectedCredential.tagName()) - if sessionID != "" { - logParts = append(logParts, " for session ", sessionID) - } - if isNew && username != "" { - logParts = append(logParts, " by user ", username) - } - if requestModel != "" { - logParts = append(logParts, ", model=", requestModel) - } - if requestServiceTier == "priority" { - logParts = append(logParts, ", fast") - } - s.logger.Debug(logParts...) requestContext := selectedCredential.wrapRequestContext(r.Context()) defer func() { diff --git a/service/ocm/service_websocket.go b/service/ocm/service_websocket.go index 8cbe3056c..f348f7fa4 100644 --- a/service/ocm/service_websocket.go +++ b/service/ocm/service_websocket.go @@ -91,7 +91,19 @@ func (s *Service) handleWebSocket( provider credentialProvider, selectedCredential credential, credentialFilter func(credential) bool, + isNew bool, ) { + if isNew { + logParts := []any{"assigned credential ", selectedCredential.tagName()} + if sessionID != "" { + logParts = append(logParts, " for session ", sessionID) + } + if username != "" { + logParts = append(logParts, " by user ", username) + } + s.logger.Debug(logParts...) + } + var ( err error upstreamConn net.Conn @@ -264,15 +276,18 @@ func (s *Service) proxyWebSocketClientToUpstream(clientConn net.Conn, upstreamCo return } - if opCode == ws.OpText && selectedCredential.usageTrackerOrNil() != nil { + if opCode == ws.OpText { var request struct { Type string `json:"type"` Model string `json:"model"` } if json.Unmarshal(data, &request) == nil && request.Type == "response.create" && request.Model != "" { - select { - case modelChannel <- request.Model: - default: + s.logger.Debug("model=", request.Model) + if selectedCredential.usageTrackerOrNil() != nil { + select { + case modelChannel <- request.Model: + default: + } } } }