diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2019-10-31 16:32:42 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2019-10-31 16:32:42 +0300 |
commit | e02444db9449c5554aa57f4f9cfebce0962db165 (patch) | |
tree | 5be5b3e9ed706663490bff1bd8e3f459a74f8677 | |
parent | f0ca42f38c3cd484dc54faf0fbf66fb6496d6623 (diff) | |
parent | 12bcf71ddae2f049d8a998cbaef68f3c7ab9f68a (diff) |
Merge branch 'jc-log-upload-pack-req-size' into 'master'
Log PostUploadPack request sha and response size
Closes #2056
See merge request gitlab-org/gitaly!1576
-rw-r--r-- | internal/service/smarthttp/upload_pack.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/internal/service/smarthttp/upload_pack.go b/internal/service/smarthttp/upload_pack.go index 559d0a2a6..569a2b30b 100644 --- a/internal/service/smarthttp/upload_pack.go +++ b/internal/service/smarthttp/upload_pack.go @@ -1,8 +1,11 @@ package smarthttp import ( + "crypto/sha1" + "fmt" "io" + grpc_logrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" "github.com/prometheus/client_golang/prometheus" "gitlab.com/gitlab-org/gitaly/internal/command" "gitlab.com/gitlab-org/gitaly/internal/git" @@ -39,10 +42,14 @@ func (s *server) PostUploadPack(stream gitalypb.SmartHTTPService_PostUploadPackS return err } - stdinReader := streamio.NewReader(func() ([]byte, error) { + h := sha1.New() + + stdinReader := io.TeeReader(streamio.NewReader(func() ([]byte, error) { resp, err := stream.Recv() + return resp.GetData(), err - }) + }), h) + pr, pw := io.Pipe() defer pw.Close() stdin := io.TeeReader(stdinReader, pw) @@ -51,7 +58,10 @@ func (s *server) PostUploadPack(stream gitalypb.SmartHTTPService_PostUploadPackS deepenCh <- scanDeepen(pr) }() + var respBytes int64 + stdout := streamio.NewWriter(func(p []byte) error { + respBytes += int64(len(p)) return stream.Send(&gitalypb.PostUploadPackResponse{Data: p}) }) @@ -94,6 +104,8 @@ func (s *server) PostUploadPack(stream gitalypb.SmartHTTPService_PostUploadPackS return status.Errorf(codes.Unavailable, "PostUploadPack: %v", err) } + grpc_logrus.Extract(ctx).WithField("request_sha", fmt.Sprintf("%x", h.Sum(nil))).WithField("response_bytes", respBytes).Info("request details") + return nil } |