Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2020-03-23 09:58:46 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2020-03-23 09:59:36 +0300
commite60f3926a00f22839e18e0a97a85754d8adc8aec (patch)
treec37306f7a9426961d2cfa728336dc0da53023845
parent7806c26e68b27e14b53e6699709dd1f02d6da48a (diff)
git: stats: Remove accessors for ReferenceDiscovery stats
The ReferenceDiscovery struct has a set of accessors to access the values of its internal fields. All accessors return the value verbosely, though, without any processing at all and are thus trivial. Given that the package is internal anyway, there is no real need for defensive coding here, so this commit removes the accessors and makes the variables public instead.
-rw-r--r--cmd/gitaly-debug/analyzehttp.go6
-rw-r--r--internal/blackbox/blackbox.go2
-rw-r--r--internal/git/stats/analyzehttp.go6
-rw-r--r--internal/git/stats/analyzehttp_test.go6
-rw-r--r--internal/git/stats/reference_discovery.go49
-rw-r--r--internal/git/stats/reference_discovery_test.go8
-rw-r--r--internal/service/smarthttp/inforefs_test.go6
7 files changed, 38 insertions, 45 deletions
diff --git a/cmd/gitaly-debug/analyzehttp.go b/cmd/gitaly-debug/analyzehttp.go
index bb2492d17..2088acdc5 100644
--- a/cmd/gitaly-debug/analyzehttp.go
+++ b/cmd/gitaly-debug/analyzehttp.go
@@ -20,9 +20,9 @@ func analyzeHTTPClone(cloneURL string) {
{"response header time", st.Get.ResponseHeader()},
{"first Git packet", st.Get.FirstGitPacket()},
{"response body time", st.Get.ResponseBody()},
- {"payload size", st.Get.PayloadSize()},
- {"Git packets received", st.Get.Packets()},
- {"refs advertised", len(st.Get.Refs())},
+ {"payload size", st.Get.PayloadSize},
+ {"Git packets received", st.Get.Packets},
+ {"refs advertised", len(st.Get.Refs)},
{"wanted refs", st.RefsWanted()},
} {
entry.print()
diff --git a/internal/blackbox/blackbox.go b/internal/blackbox/blackbox.go
index b3efcfa68..db3242c88 100644
--- a/internal/blackbox/blackbox.go
+++ b/internal/blackbox/blackbox.go
@@ -64,7 +64,7 @@ func doProbe(probe Probe) {
setGauge(getFirstPacket, clone.Get.FirstGitPacket().Seconds())
setGauge(getTotalTime, clone.Get.ResponseBody().Seconds())
- setGauge(getAdvertisedRefs, float64(len(clone.Get.Refs())))
+ setGauge(getAdvertisedRefs, float64(len(clone.Get.Refs)))
setGauge(wantedRefs, float64(clone.RefsWanted()))
setGauge(postTotalTime, clone.Post.ResponseBody().Seconds())
setGauge(postFirstProgressPacket, clone.Post.BandFirstPacket("progress").Seconds())
diff --git a/internal/git/stats/analyzehttp.go b/internal/git/stats/analyzehttp.go
index 9bd13617e..7b7303c4b 100644
--- a/internal/git/stats/analyzehttp.go
+++ b/internal/git/stats/analyzehttp.go
@@ -58,8 +58,8 @@ type Get struct {
func (g *Get) ResponseHeader() time.Duration { return g.responseHeader }
func (g *Get) HTTPStatus() int { return g.httpStatus }
-func (g *Get) FirstGitPacket() time.Duration { return g.FirstPacket().Sub(g.start) }
-func (g *Get) ResponseBody() time.Duration { return g.LastPacket().Sub(g.start) }
+func (g *Get) FirstGitPacket() time.Duration { return g.FirstPacket.Sub(g.start) }
+func (g *Get) ResponseBody() time.Duration { return g.LastPacket.Sub(g.start) }
func (cl *Clone) doGet(ctx context.Context) error {
req, err := http.NewRequest("GET", cl.URL+"/info/refs?service=git-upload-pack", nil)
@@ -116,7 +116,7 @@ func (cl *Clone) doGet(ctx context.Context) error {
return err
}
- for _, ref := range cl.Get.Refs() {
+ for _, ref := range cl.Get.Refs {
if strings.HasPrefix(ref.Name, "refs/heads/") || strings.HasPrefix(ref.Name, "refs/tags/") {
cl.wants = append(cl.wants, ref.Oid)
}
diff --git a/internal/git/stats/analyzehttp_test.go b/internal/git/stats/analyzehttp_test.go
index 75b27eb12..c041db9b1 100644
--- a/internal/git/stats/analyzehttp_test.go
+++ b/internal/git/stats/analyzehttp_test.go
@@ -28,9 +28,9 @@ func TestClone(t *testing.T) {
require.Greater(t, clone.RefsWanted(), expectedWants, "number of wanted refs")
require.Equal(t, 200, clone.Get.HTTPStatus(), "get status")
- require.Greater(t, clone.Get.Packets(), 0, "number of get packets")
- require.Greater(t, clone.Get.PayloadSize(), int64(0), "get payload size")
- require.Greater(t, len(clone.Get.Caps()), 10, "get capabilities")
+ require.Greater(t, clone.Get.Packets, 0, "number of get packets")
+ require.Greater(t, clone.Get.PayloadSize, int64(0), "get payload size")
+ require.Greater(t, len(clone.Get.Caps), 10, "get capabilities")
previousValue := time.Duration(0)
for _, m := range []struct {
diff --git a/internal/git/stats/reference_discovery.go b/internal/git/stats/reference_discovery.go
index 032009fa1..d04bf129a 100644
--- a/internal/git/stats/reference_discovery.go
+++ b/internal/git/stats/reference_discovery.go
@@ -22,27 +22,20 @@ type Reference struct {
// ReferenceDiscovery contains information about a reference discovery session.
type ReferenceDiscovery struct {
- // firstPacket tracks the time when the first pktline was received
- firstPacket time.Time
- // lastPacket tracks the time when the last pktline was received
- lastPacket time.Time
- // payloadSize tracks the size of all pktlines' data
- payloadSize int64
- // packets tracks the total number of packets consumed
- packets int
- // refs contains all announced references
- refs []Reference
- // caps contains all supported capabilities
- caps []string
+ // FirstPacket tracks the time when the first pktline was received
+ FirstPacket time.Time
+ // LastPacket tracks the time when the last pktline was received
+ LastPacket time.Time
+ // PayloadSize tracks the size of all pktlines' data
+ PayloadSize int64
+ // Packets tracks the total number of packets consumed
+ Packets int
+ // Refs contains all announced references
+ Refs []Reference
+ // Caps contains all supported capabilities
+ Caps []string
}
-func (d *ReferenceDiscovery) FirstPacket() time.Time { return d.firstPacket }
-func (d *ReferenceDiscovery) LastPacket() time.Time { return d.lastPacket }
-func (d *ReferenceDiscovery) PayloadSize() int64 { return d.payloadSize }
-func (d *ReferenceDiscovery) Packets() int { return d.packets }
-func (d *ReferenceDiscovery) Refs() []Reference { return d.refs }
-func (d *ReferenceDiscovery) Caps() []string { return d.caps }
-
type referenceDiscoveryState int
const (
@@ -76,14 +69,14 @@ func (d *ReferenceDiscovery) Parse(body io.Reader) error {
state := referenceDiscoveryExpectService
scanner := pktline.NewScanner(body)
- for ; scanner.Scan(); d.packets++ {
+ for ; scanner.Scan(); d.Packets++ {
pkt := scanner.Bytes()
data := text.ChompBytes(pktline.Data(pkt))
- d.payloadSize += int64(len(data))
+ d.PayloadSize += int64(len(data))
switch state {
case referenceDiscoveryExpectService:
- d.firstPacket = time.Now()
+ d.FirstPacket = time.Now()
if data != "# service=git-upload-pack" {
return fmt.Errorf("unexpected header %q", data)
}
@@ -105,8 +98,8 @@ func (d *ReferenceDiscovery) Parse(body io.Reader) error {
if len(ref) != 2 {
return errors.New("invalid reference line")
}
- d.refs = append(d.refs, Reference{Oid: ref[0], Name: ref[1]})
- d.caps = strings.Split(string(split[1]), " ")
+ d.Refs = append(d.Refs, Reference{Oid: ref[0], Name: ref[1]})
+ d.Caps = strings.Split(string(split[1]), " ")
state = referenceDiscoveryExpectRef
case referenceDiscoveryExpectRef:
@@ -119,7 +112,7 @@ func (d *ReferenceDiscovery) Parse(body io.Reader) error {
if len(split) != 2 {
return errors.New("invalid reference line")
}
- d.refs = append(d.refs, Reference{Oid: split[0], Name: split[1]})
+ d.Refs = append(d.Refs, Reference{Oid: split[0], Name: split[1]})
case referenceDiscoveryExpectEnd:
return errors.New("received packet after flush")
}
@@ -128,14 +121,14 @@ func (d *ReferenceDiscovery) Parse(body io.Reader) error {
if err := scanner.Err(); err != nil {
return err
}
- if len(d.refs) == 0 {
+ if len(d.Refs) == 0 {
return errors.New("received no references")
}
- if len(d.caps) == 0 {
+ if len(d.Caps) == 0 {
return errors.New("received no capabilities")
}
- d.lastPacket = time.Now()
+ d.LastPacket = time.Now()
return nil
}
diff --git a/internal/git/stats/reference_discovery_test.go b/internal/git/stats/reference_discovery_test.go
index 1bd998094..99b0333ed 100644
--- a/internal/git/stats/reference_discovery_test.go
+++ b/internal/git/stats/reference_discovery_test.go
@@ -17,8 +17,8 @@ func TestSingleRefParses(t *testing.T) {
d, err := ParseReferenceDiscovery(buf)
require.NoError(t, err)
- require.Equal(t, []string{"capability"}, d.Caps())
- require.Equal(t, []Reference{{Oid: oid1, Name: "HEAD"}}, d.Refs())
+ require.Equal(t, []string{"capability"}, d.Caps)
+ require.Equal(t, []Reference{{Oid: oid1, Name: "HEAD"}}, d.Refs)
}
func TestMultipleRefsAndCapsParse(t *testing.T) {
@@ -31,8 +31,8 @@ func TestMultipleRefsAndCapsParse(t *testing.T) {
d, err := ParseReferenceDiscovery(buf)
require.NoError(t, err)
- require.Equal(t, []string{"first", "second"}, d.Caps())
- require.Equal(t, []Reference{{Oid: oid1, Name: "HEAD"}, {Oid: oid2, Name: "refs/heads/master"}}, d.Refs())
+ require.Equal(t, []string{"first", "second"}, d.Caps)
+ require.Equal(t, []Reference{{Oid: oid1, Name: "HEAD"}, {Oid: oid2, Name: "refs/heads/master"}}, d.Refs)
}
func TestInvalidHeaderFails(t *testing.T) {
diff --git a/internal/service/smarthttp/inforefs_test.go b/internal/service/smarthttp/inforefs_test.go
index 899a39d3e..9606fb1c4 100644
--- a/internal/service/smarthttp/inforefs_test.go
+++ b/internal/service/smarthttp/inforefs_test.go
@@ -71,11 +71,11 @@ func TestSuccessfulInfoRefsUploadWithPartialClone(t *testing.T) {
err = partialRefs.Parse(bytes.NewReader(partialResponse))
require.NoError(t, err)
- require.Equal(t, fullRefs.Refs(), partialRefs.Refs())
+ require.Equal(t, fullRefs.Refs, partialRefs.Refs)
for _, c := range []string{"allow-tip-sha1-in-want", "allow-reachable-sha1-in-want", "filter"} {
- require.Contains(t, partialRefs.Caps(), c)
- require.NotContains(t, fullRefs.Caps(), c)
+ require.Contains(t, partialRefs.Caps, c)
+ require.NotContains(t, fullRefs.Caps, c)
}
}