From 1001b66017c8fe132be281d280eaa23c1c518af5 Mon Sep 17 00:00:00 2001
From: Jacob Vosmaer <jacob@gitlab.com>
Date: Tue, 15 Sep 2020 10:10:08 +0000
Subject: [PATCH] Add logging for local LSIF ZIP caching

---
 changelogs/unreleased/jv-log-lsif-zip-cache.yml      | 5 +++++
 internal/lsif_transformer/parser/parser.go           | 6 +++++-
 internal/lsif_transformer/parser/parser_test.go      | 3 ++-
 internal/lsif_transformer/parser/performance_test.go | 3 ++-
 internal/upload/rewrite.go                           | 2 +-
 5 files changed, 15 insertions(+), 4 deletions(-)
 create mode 100644 changelogs/unreleased/jv-log-lsif-zip-cache.yml

diff --git a/changelogs/unreleased/jv-log-lsif-zip-cache.yml b/changelogs/unreleased/jv-log-lsif-zip-cache.yml
new file mode 100644
index 0000000000000..bedf3c1a4c25d
--- /dev/null
+++ b/changelogs/unreleased/jv-log-lsif-zip-cache.yml
@@ -0,0 +1,5 @@
+---
+title: Add logging for local LSIF ZIP caching
+merge_request: 579
+author:
+type: added
diff --git a/internal/lsif_transformer/parser/parser.go b/internal/lsif_transformer/parser/parser.go
index 44c1e8fe835e1..085e7a856aa16 100644
--- a/internal/lsif_transformer/parser/parser.go
+++ b/internal/lsif_transformer/parser/parser.go
@@ -2,11 +2,14 @@ package parser
 
 import (
 	"archive/zip"
+	"context"
 	"errors"
 	"fmt"
 	"io"
 	"io/ioutil"
 	"os"
+
+	"gitlab.com/gitlab-org/labkit/log"
 )
 
 var (
@@ -23,7 +26,7 @@ type Config struct {
 	TempPath string
 }
 
-func NewParser(r io.Reader, config Config) (io.ReadCloser, error) {
+func NewParser(ctx context.Context, r io.Reader, config Config) (io.ReadCloser, error) {
 	docs, err := NewDocs(config)
 	if err != nil {
 		return nil, err
@@ -45,6 +48,7 @@ func NewParser(r io.Reader, config Config) (io.ReadCloser, error) {
 	if err != nil {
 		return nil, err
 	}
+	log.WithContextFields(ctx, log.Fields{"lsif_zip_cache_bytes": size}).Print("cached incoming LSIF zip on disk")
 
 	zr, err := zip.NewReader(tempFile, size)
 	if err != nil {
diff --git a/internal/lsif_transformer/parser/parser_test.go b/internal/lsif_transformer/parser/parser_test.go
index 314df02b1d10d..3a4d72360e2ba 100644
--- a/internal/lsif_transformer/parser/parser_test.go
+++ b/internal/lsif_transformer/parser/parser_test.go
@@ -3,6 +3,7 @@ package parser
 import (
 	"archive/zip"
 	"bytes"
+	"context"
 	"encoding/json"
 	"io"
 	"io/ioutil"
@@ -42,7 +43,7 @@ func createFiles(t *testing.T, filePath, tmpDir string) {
 	file, err := os.Open(filePath)
 	require.NoError(t, err)
 
-	parser, err := NewParser(file, Config{})
+	parser, err := NewParser(context.Background(), file, Config{})
 	require.NoError(t, err)
 
 	zipFileName := tmpDir + ".zip"
diff --git a/internal/lsif_transformer/parser/performance_test.go b/internal/lsif_transformer/parser/performance_test.go
index d3ecc1ed5c12d..5a12d90072f47 100644
--- a/internal/lsif_transformer/parser/performance_test.go
+++ b/internal/lsif_transformer/parser/performance_test.go
@@ -1,6 +1,7 @@
 package parser
 
 import (
+	"context"
 	"io"
 	"io/ioutil"
 	"os"
@@ -21,7 +22,7 @@ func BenchmarkGenerate(b *testing.B) {
 			file, err := os.Open(filePath)
 			require.NoError(b, err)
 
-			parser, err := NewParser(file, Config{})
+			parser, err := NewParser(context.Background(), file, Config{})
 			require.NoError(b, err)
 
 			_, err = io.Copy(ioutil.Discard, parser)
diff --git a/internal/upload/rewrite.go b/internal/upload/rewrite.go
index 80928d64cffa3..3da2991acb242 100644
--- a/internal/upload/rewrite.go
+++ b/internal/upload/rewrite.go
@@ -187,7 +187,7 @@ func handleLsifUpload(ctx context.Context, reader io.Reader, tempPath, filename
 		TempPath: tempPath,
 	}
 
-	return parser.NewParser(reader, parserConfig)
+	return parser.NewParser(ctx, reader, parserConfig)
 }
 
 func (rew *rewriter) copyPart(ctx context.Context, name string, p *multipart.Part) error {
-- 
GitLab