Project

General

Profile

Actions

Feature #23332

open

Go FUSE driver reports crunchstats net:keep0, keepcalls, keepcache

Added by Brett Smith 4 months ago. Updated 2 months ago.

Status:
In Progress
Priority:
Normal
Assigned To:
Category:
FUSE
Target version:
-
Story points:
-

Description

The original crunchstat reporting branch in #23245 was in development at the same time we started collecting these new metrics in #23284. Now that both are done, add these new metrics to the crunchstat output.


Related issues 3 (1 open2 closed)

Follows Arvados - Feature #23245: Go FUSE driver reports crunchstatsResolvedLisa KnoxActions
Follows Arvados - Feature #23284: Keepclient reports backend keep metricsResolvedTom CleggActions
Precedes Arvados Epics - Feature #23333: Go FUSE Driver Phase 1: crunch-run uses arvados-client mountIn ProgressActions
Actions #1

Updated by Brett Smith 4 months ago

  • Tracker changed from Bug to Feature
Actions #2

Updated by Brett Smith 4 months ago

  • Description updated (diff)
Actions #3

Updated by Brett Smith 4 months ago

Actions #4

Updated by Brett Smith 4 months ago

  • Follows Feature #23284: Keepclient reports backend keep metrics added
Actions #5

Updated by Brett Smith 4 months ago

  • Precedes Feature #23333: Go FUSE Driver Phase 1: crunch-run uses arvados-client mount added
Actions #6

Updated by Brett Smith 4 months ago

Looks like this is being done in #23245#note-18.

Actions #7

Updated by Tom Clegg 2 months ago

  • Assigned To set to Tom Clegg
  • Status changed from New to In Progress

This was done in #23245 but it looks like something went wrong -- I'm finding the reported backend stats are zero, both in actual arvados-client mount usage and in a test case:

diff --git a/lib/mount/command_test.go b/lib/mount/command_test.go
index 16917e0d32..8d7f1d0d84 100644
--- a/lib/mount/command_test.go
+++ b/lib/mount/command_test.go
@@ -112,6 +113,10 @@ func (s *CmdSuite) TestCrunchstatLogger(c *check.C) {
                logs := s.stderr.String()
                c.Assert(strings.Contains(logs, "blkio:0:0 2048 write 2048 read"), check.Equals, true)
                c.Assert(strings.Contains(logs, "crunchstat: fuseop:open 1 count"), check.Equals, true)
+               hitmiss := regexp.MustCompile(`.*keepcache (\d+) hit (\d+) miss`).FindStringSubmatch(logs)
+               if c.Check(hitmiss, check.HasLen, 3) {
+                       c.Check(hitmiss[1]+" "+hitmiss[2], check.Not(check.Equals), "0 0")
+               }
        })
        // Check that logging has stopped after unmount
        len1 := s.stderr.Len()
FAIL: command_test.go:100: CmdSuite.TestCrunchstatLogger

command_test.go:118:
    c.Check(hitmiss[1]+" "+hitmiss[2], check.Not(check.Equals), "0 0")
... obtained string = "0 0" 
... expected string = "0 0" 
Actions

Also available in: Atom PDF