Skip to content

Commit 2a187ea

Browse files
authored
Do not log potentially sensitive data below DEBUG log level (#1192)
* Do not log potentially sensitive data below DEBUG log level Currently EPP and BBR might log potentially sensitive data at `DEFAULT` or `VERBOSE` log level. Signed-off-by: Pierangelo Di Pilato <[email protected]> * Avoid logging request body when failing to unmarshal body Signed-off-by: Pierangelo Di Pilato <[email protected]> --------- Signed-off-by: Pierangelo Di Pilato <[email protected]>
1 parent 3efd1d1 commit 2a187ea

File tree

4 files changed

+43
-12
lines changed

4 files changed

+43
-12
lines changed

pkg/bbr/handlers/server.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,11 @@ func (s *Server) Process(srv extProcPb.ExternalProcessor_ProcessServer) error {
8383
responses, err = s.HandleRequestHeaders(req.GetRequestHeaders())
8484
}
8585
case *extProcPb.ProcessingRequest_RequestBody:
86-
loggerVerbose.Info("Incoming body chunk", "body", string(v.RequestBody.Body), "EoS", v.RequestBody.EndOfStream)
86+
if logger.V(logutil.DEBUG).Enabled() {
87+
logger.V(logutil.DEBUG).Info("Incoming body chunk", "body", string(v.RequestBody.Body), "EoS", v.RequestBody.EndOfStream)
88+
} else {
89+
loggerVerbose.Info("Incoming body chunk", "EoS", v.RequestBody.EndOfStream)
90+
}
8791
responses, err = s.processRequestBody(ctx, req.GetRequestBody(), streamedBody, logger)
8892
case *extProcPb.ProcessingRequest_RequestTrailers:
8993
responses, err = s.HandleRequestTrailers(req.GetRequestTrailers())
@@ -97,12 +101,20 @@ func (s *Server) Process(srv extProcPb.ExternalProcessor_ProcessServer) error {
97101
}
98102

99103
if err != nil {
100-
logger.V(logutil.DEFAULT).Error(err, "Failed to process request", "request", req)
104+
if logger.V(logutil.DEBUG).Enabled() {
105+
logger.V(logutil.DEBUG).Error(err, "Failed to process request", "request", req)
106+
} else {
107+
logger.V(logutil.DEFAULT).Error(err, "Failed to process request")
108+
}
101109
return status.Errorf(status.Code(err), "failed to handle request: %v", err)
102110
}
103111

104112
for _, resp := range responses {
105-
loggerVerbose.Info("Response generated", "response", resp)
113+
if logger.V(logutil.DEBUG).Enabled() {
114+
logger.V(logutil.DEBUG).Info("Response generated", "response", resp)
115+
} else {
116+
loggerVerbose.Info("Response generated")
117+
}
106118
if err := srv.Send(resp); err != nil {
107119
logger.V(logutil.DEFAULT).Error(err, "Send failed")
108120
return status.Errorf(codes.Unknown, "failed to send response back to Envoy: %v", err)

pkg/epp/handlers/server.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,11 @@ func (s *StreamingServer) Process(srv extProcPb.ExternalProcessor_ProcessServer)
208208
loggerTrace.Info("decoding")
209209
err = json.Unmarshal(body, &reqCtx.Request.Body)
210210
if err != nil {
211-
logger.V(logutil.DEFAULT).Error(err, "Error unmarshaling request body")
212-
err = errutil.Error{Code: errutil.BadRequest, Msg: "Error unmarshaling request body: " + string(body)}
211+
if logger.V(logutil.DEBUG).Enabled() {
212+
err = errutil.Error{Code: errutil.BadRequest, Msg: "Error unmarshaling request body: " + string(body)}
213+
} else {
214+
err = errutil.Error{Code: errutil.BadRequest, Msg: "Error unmarshaling request body"}
215+
}
213216
break
214217
}
215218

@@ -254,7 +257,11 @@ func (s *StreamingServer) Process(srv extProcPb.ExternalProcessor_ProcessServer)
254257
var responseErr error
255258
reqCtx, responseErr = s.HandleResponseHeaders(ctx, reqCtx, v)
256259
if responseErr != nil {
257-
logger.V(logutil.DEFAULT).Error(responseErr, "Failed to process response headers", "request", req)
260+
if logger.V(logutil.DEBUG).Enabled() {
261+
logger.V(logutil.DEBUG).Error(responseErr, "Failed to process response headers", "request", req)
262+
} else {
263+
logger.V(logutil.DEFAULT).Error(responseErr, "Failed to process response headers")
264+
}
258265
}
259266
reqCtx.respHeaderResp = s.generateResponseHeaderResponse(reqCtx)
260267

@@ -285,14 +292,22 @@ func (s *StreamingServer) Process(srv extProcPb.ExternalProcessor_ProcessServer)
285292
var responseErr error
286293
responseErr = json.Unmarshal(body, &responseBody)
287294
if responseErr != nil {
288-
logger.V(logutil.DEFAULT).Error(responseErr, "Error unmarshaling request body", "body", string(body))
295+
if logger.V(logutil.DEBUG).Enabled() {
296+
logger.V(logutil.DEBUG).Error(responseErr, "Error unmarshalling request body", "body", string(body))
297+
} else {
298+
logger.V(logutil.DEFAULT).Error(responseErr, "Error unmarshalling request body")
299+
}
289300
reqCtx.respBodyResp = generateResponseBodyResponses(body, true)
290301
break
291302
}
292303

293304
reqCtx, responseErr = s.HandleResponseBody(ctx, reqCtx, responseBody)
294305
if responseErr != nil {
295-
logger.V(logutil.DEFAULT).Error(responseErr, "Failed to process response body", "request", req)
306+
if logger.V(logutil.DEBUG).Enabled() {
307+
logger.V(logutil.DEBUG).Error(responseErr, "Failed to process response body", "request", req)
308+
} else {
309+
logger.V(logutil.DEFAULT).Error(responseErr, "Failed to process response body")
310+
}
296311
} else if reqCtx.ResponseComplete {
297312
reqCtx.ResponseCompleteTimestamp = time.Now()
298313
metrics.RecordRequestLatencies(ctx, reqCtx.Model, reqCtx.ResolvedTargetModel, reqCtx.RequestReceivedTimestamp, reqCtx.ResponseCompleteTimestamp)
@@ -308,7 +323,11 @@ func (s *StreamingServer) Process(srv extProcPb.ExternalProcessor_ProcessServer)
308323

309324
// Handle the err and fire an immediate response.
310325
if err != nil {
311-
logger.V(logutil.DEFAULT).Error(err, "Failed to process request", "request", req)
326+
if logger.V(logutil.DEBUG).Enabled() {
327+
logger.V(logutil.DEBUG).Error(err, "Failed to process request", "request", req)
328+
} else {
329+
logger.V(logutil.DEFAULT).Error(err, "Failed to process request")
330+
}
312331
resp, err := buildErrResponse(err)
313332
if err != nil {
314333
return err

pkg/epp/scheduling/scheduler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ type Scheduler struct {
5050

5151
// Schedule finds the target pod based on metrics and the requested lora adapter.
5252
func (s *Scheduler) Schedule(ctx context.Context, request *types.LLMRequest, candidatePods []types.Pod) (*types.SchedulingResult, error) {
53-
logger := log.FromContext(ctx).WithValues("request", request)
53+
logger := log.FromContext(ctx).WithValues("requestId", request.RequestId, "targetModel", request.TargetModel)
5454
loggerDebug := logger.V(logutil.DEBUG)
5555

5656
scheduleStart := time.Now()
@@ -86,7 +86,7 @@ func (s *Scheduler) Schedule(ctx context.Context, request *types.LLMRequest, can
8686
}
8787

8888
if len(profileRunResults) == 0 {
89-
return nil, fmt.Errorf("failed to run any scheduler profile for the request - %s", request)
89+
return nil, fmt.Errorf("failed to run any scheduler profile for request %s", request.RequestId)
9090
}
9191

9292
loggerDebug.Info("Running profile handler, ProcessResults", "plugin", s.profileHandler.TypedName().Type)

test/integration/epp/hermetic_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ func TestFullDuplexStreamed_KubeInferenceModelRequest(t *testing.T) {
219219
wantErr: false,
220220
wantResponses: integrationutils.NewImmediateErrorResponse(
221221
envoyTypePb.StatusCode_BadRequest,
222-
"inference gateway: BadRequest - Error unmarshaling request body: no healthy upstream",
222+
"inference gateway: BadRequest - Error unmarshaling request body",
223223
),
224224
},
225225
{

0 commit comments

Comments
 (0)