[server] Log slow files data put requests

This commit is contained in:
Neeraj Gupta
2024-08-24 15:48:16 +05:30
parent 408537e016
commit 0bc8b428bb

View File

@@ -17,6 +17,7 @@ import (
"github.com/ente-io/museum/pkg/utils/network"
"github.com/ente-io/museum/pkg/utils/s3config"
"github.com/ente-io/stacktrace"
"github.com/gin-contrib/requestid"
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"strings"
@@ -76,6 +77,9 @@ func New(repo *fileDataRepo.Repository,
}
func (c *Controller) InsertOrUpdate(ctx *gin.Context, req *fileData.PutFileDataRequest) error {
startTime := gTime.Now()
opStartTime := gTime.Now()
logFields := log.Fields{}
if err := req.Validate(); err != nil {
return stacktrace.Propagate(err, "validation failed")
}
@@ -84,6 +88,8 @@ func (c *Controller) InsertOrUpdate(ctx *gin.Context, req *fileData.PutFileDataR
if err != nil {
return stacktrace.Propagate(err, "")
}
logFields["validationTime"] = gTime.Since(opStartTime).Milliseconds()
opStartTime = gTime.Now()
if req.Type != ente.MlData && req.Type != ente.PreviewVideo {
return stacktrace.Propagate(ente.NewBadRequestWithMessage("unsupported object type "+string(req.Type)), "")
}
@@ -112,6 +118,8 @@ func (c *Controller) InsertOrUpdate(ctx *gin.Context, req *fileData.PutFileDataR
log.Error(uploadErr)
return stacktrace.Propagate(uploadErr, "")
}
logFields["uploadTime"] = gTime.Since(opStartTime).Milliseconds()
opStartTime = gTime.Now()
row := fileData.Row{
FileID: req.FileID,
@@ -124,6 +132,15 @@ func (c *Controller) InsertOrUpdate(ctx *gin.Context, req *fileData.PutFileDataR
if err != nil {
return stacktrace.Propagate(err, "")
}
logFields["dbInsertTime"] = gTime.Since(opStartTime).Milliseconds()
// log if total time is more than 2 seconds
if gTime.Since(startTime) > 2*gTime.Second {
logFields["totalTime"] = gTime.Since(startTime).Milliseconds()
logFields["req_id"] = requestid.Get(ctx)
logFields["fileID"] = req.FileID
log.WithFields(logFields).Warn("slow request")
}
return nil
}