X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6152230e1f77b925c2041d688805ab6764919805..8b3478bda6764b3f30aef69ec0a93729495296c0:/services/fuse/arvados_fuse/__init__.py diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py index 49151318a7..fd25aa9b5e 100644 --- a/services/fuse/arvados_fuse/__init__.py +++ b/services/fuse/arvados_fuse/__init__.py @@ -66,6 +66,7 @@ import itertools import ciso8601 import collections import functools +import arvados.keep import Queue @@ -323,6 +324,11 @@ class Operations(llfuse.Operations): self.num_retries = num_retries + self.read_counter = arvados.keep.Counter() + self.write_counter = arvados.keep.Counter() + self.read_ops_counter = arvados.keep.Counter() + self.write_ops_counter = arvados.keep.Counter() + self.events = None def init(self): @@ -484,6 +490,8 @@ class Operations(llfuse.Operations): @catch_exceptions def read(self, fh, off, size): _logger.debug("arv-mount read %i %i %i", fh, off, size) + self.read_ops_counter.add(1) + if fh in self._filehandles: handle = self._filehandles[fh] else: @@ -491,11 +499,16 @@ class Operations(llfuse.Operations): self.inodes.touch(handle.obj) - return handle.obj.readfrom(off, size, self.num_retries) + r = handle.obj.readfrom(off, size, self.num_retries) + if r: + self.read_counter.add(len(r)) + return r @catch_exceptions def write(self, fh, off, buf): _logger.debug("arv-mount write %i %i %i", fh, off, len(buf)) + self.write_ops_counter.add(1) + if fh in self._filehandles: handle = self._filehandles[fh] else: @@ -506,7 +519,10 @@ class Operations(llfuse.Operations): self.inodes.touch(handle.obj) - return handle.obj.writeto(off, buf, self.num_retries) + w = handle.obj.writeto(off, buf, self.num_retries) + if w: + self.write_counter.add(w) + return w @catch_exceptions def release(self, fh):