X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/395b0e17c81d2b8767a240193ab94363cbc0dae8..6d1c41d6fd83824669cd1a6d714ea6da1ae7ab4c:/services/fuse/arvados_fuse/crunchstat.py diff --git a/services/fuse/arvados_fuse/crunchstat.py b/services/fuse/arvados_fuse/crunchstat.py index e856d839b8..0cb585a6ff 100644 --- a/services/fuse/arvados_fuse/crunchstat.py +++ b/services/fuse/arvados_fuse/crunchstat.py @@ -2,13 +2,15 @@ # # SPDX-License-Identifier: AGPL-3.0 +from builtins import str +from builtins import object import sys import time from collections import namedtuple Stat = namedtuple("Stat", ['name', 'get']) -class StatWriter(object): +class StatWriter(object): def __init__(self, prefix, interval, stats): self.prefix = prefix self.interval = interval @@ -40,7 +42,7 @@ class StatWriter(object): def statlogger(interval, keep, ops): calls = StatWriter("keepcalls", interval, [ - Stat("put", keep.put_counter.get), + Stat("put", keep.put_counter.get), Stat("get", keep.get_counter.get) ]) net = StatWriter("net:keep0", interval, [ @@ -48,16 +50,20 @@ def statlogger(interval, keep, ops): Stat("rx", keep.download_counter.get) ]) cache = StatWriter("keepcache", interval, [ - Stat("hit", keep.hits_counter.get), + Stat("hit", keep.hits_counter.get), Stat("miss", keep.misses_counter.get) ]) fuseops = StatWriter("fuseops", interval, [ - Stat("write", ops.write_ops_counter.get), + Stat("write", ops.write_ops_counter.get), Stat("read", ops.read_ops_counter.get) ]) - fusetime = StatWriter("fuseopstime", interval, [ - Stat("seconds", ops.fuse_ops_total_time) - ]) + fusetimes = [] + for cur_op in ops.metric_op_names(): + name = "fuseop:{0}".format(cur_op) + fusetimes.append(StatWriter(name, interval, [ + Stat("count", ops.metric_count_func(cur_op)), + Stat("time", ops.metric_sum_func(cur_op)) + ])) blk = StatWriter("blkio:0:0", interval, [ Stat("write", ops.write_counter.get), Stat("read", ops.read_counter.get) @@ -68,8 +74,9 @@ def statlogger(interval, keep, ops): calls.update() net.update() cache.update() - fuseops.update() - fusetime.update() blk.update() + fuseops.update() + for ftime in fusetimes: + ftime.update()