Skip to content

Commit da9b7ae

Browse files
authored
chore: add logging for session and redis (#614)
1 parent 5fe1c8f commit da9b7ae

3 files changed

Lines changed: 63 additions & 7 deletions

File tree

internal/core/io_tunnel/backwards_invocation/transaction/serverless_handler.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,14 @@ func (h *ServerlessTransactionHandler) Handle(ctx *gin.Context, sessionId string
8989
backwardsRequestId, _ = invokePayload["backwards_request_id"].(string)
9090
}
9191

92+
log.ErrorContext(
93+
ctx.Request.Context(),
94+
"failed to get session info from cache",
95+
"session_id", sessionId,
96+
"backwards_request_id", backwardsRequestId,
97+
"error", err,
98+
)
99+
92100
respData := backwards_invocation.BackwardsInvocationResponseEvent{
93101
BackwardsRequestId: backwardsRequestId,
94102
Event: backwards_invocation.REQUEST_EVENT_ERROR,
@@ -99,9 +107,15 @@ func (h *ServerlessTransactionHandler) Handle(ctx *gin.Context, sessionId string
99107
"session_id": sessionId,
100108
},
101109
}
102-
_, err = ctx.Writer.Write(parser.MarshalJsonBytes(respData))
103-
if err != nil {
104-
log.Error("failed to write response", "error", err)
110+
_, writeErr := ctx.Writer.Write(parser.MarshalJsonBytes(respData))
111+
if writeErr != nil {
112+
log.ErrorContext(
113+
ctx.Request.Context(),
114+
"failed to write serverless transaction error response",
115+
"session_id", sessionId,
116+
"backwards_request_id", backwardsRequestId,
117+
"error", writeErr,
118+
)
105119
}
106120
_ = writer.Close()
107121
return
@@ -133,7 +147,12 @@ func (h *ServerlessTransactionHandler) Handle(ctx *gin.Context, sessionId string
133147
},
134148
func() {},
135149
func(err string) {
136-
log.Warn("invoke dify failed, received errors", "error", err)
150+
log.WarnContext(
151+
ctx.Request.Context(),
152+
"invoke dify failed, received errors",
153+
"session_id", sessionId,
154+
"error", err,
155+
)
137156
},
138157
func(plugin_entities.PluginLogEvent) {}, //log
139158
)

internal/core/session_manager/session.go

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,15 @@ func NewSession(payload NewSessionPayload) *Session {
9595

9696
if !payload.IgnoreCache {
9797
if err := cache.Store(sessionKey(s.ID), s, time.Minute*30); err != nil {
98-
log.Error("set session info to cache failed", "error", err)
98+
log.ErrorContext(
99+
s.RequestContext(),
100+
"set session info to cache failed",
101+
"session_id", s.ID,
102+
"cache_key", sessionKey(s.ID),
103+
"cluster_id", s.ClusterID,
104+
"plugin_unique_identifier", s.PluginUniqueIdentifier.String(),
105+
"error", err,
106+
)
99107
}
100108
}
101109

@@ -139,12 +147,32 @@ type DeleteSessionPayload struct {
139147

140148
func DeleteSession(payload DeleteSessionPayload) {
141149
sessionLock.Lock()
150+
session := sessions[payload.ID]
142151
delete(sessions, payload.ID)
143152
sessionLock.Unlock()
144153

145154
if !payload.IgnoreCache {
146-
if _, err := cache.Del(sessionKey(payload.ID)); err != nil {
147-
log.Error("delete session info from cache failed", "error", err)
155+
cacheKey := sessionKey(payload.ID)
156+
if _, err := cache.Del(cacheKey); err != nil {
157+
if session != nil {
158+
log.ErrorContext(
159+
session.RequestContext(),
160+
"delete session info from cache failed",
161+
"session_id", payload.ID,
162+
"cache_key", cacheKey,
163+
"cluster_id", session.ClusterID,
164+
"plugin_unique_identifier", session.PluginUniqueIdentifier.String(),
165+
"error", err,
166+
)
167+
} else {
168+
log.ErrorContext(
169+
context.Background(),
170+
"delete session info from cache failed",
171+
"session_id", payload.ID,
172+
"cache_key", cacheKey,
173+
"error", err,
174+
)
175+
}
148176
}
149177
}
150178
}

internal/service/serverless_transaction.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,21 @@ package service
33
import (
44
"github.com/gin-gonic/gin"
55
"github.com/langgenius/dify-plugin-daemon/internal/core/io_tunnel/backwards_invocation/transaction"
6+
"github.com/langgenius/dify-plugin-daemon/pkg/utils/log"
67
)
78

89
func HandleServerlessPluginTransaction(handler *transaction.ServerlessTransactionHandler) gin.HandlerFunc {
910
return func(c *gin.Context) {
1011
// get session id from the context
1112
sessionId := c.Request.Header.Get("Dify-Plugin-Session-ID")
13+
if sessionId == "" {
14+
log.WarnContext(
15+
c.Request.Context(),
16+
"missing Dify-Plugin-Session-ID header",
17+
"method", c.Request.Method,
18+
"path", c.Request.URL.Path,
19+
)
20+
}
1221

1322
handler.Handle(c, sessionId)
1423
}

0 commit comments

Comments
 (0)