[ARVADOS] updated: 1.3.0-523-gdaa4ee15f
Git user
git at public.curoverse.com
Tue Mar 19 17:27:02 UTC 2019
Summary of changes:
services/fuse/arvados_fuse/__init__.py | 25 ++++++++++++++++++-------
services/fuse/arvados_fuse/crunchstat.py | 14 +++++++++-----
2 files changed, 27 insertions(+), 12 deletions(-)
via daa4ee15fdf51a573f96b74c9fd01747b63bbeb0 (commit)
from 97432e0e9d32a41c48a5298a0dbfd70b310e20e7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit daa4ee15fdf51a573f96b74c9fd01747b63bbeb0
Author: Eric Biagiotti <ebiagiotti at veritasgenetics.com>
Date: Tue Mar 19 13:26:26 2019 -0400
14645: Adds individual ops time output
Arvados-DCO-1.1-Signed-off-by: Eric Biagiotti <ebiagiotti at veritasgenetics.com>
diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index 7c078858c..1ca3a0dc1 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -413,14 +413,25 @@ class Operations(llfuse.Operations):
# initializing to continue
self.initlock.set()
- def fuse_ops_total_time(self):
- ops_sum = 0.0
+ def time_samples(self):
metrics = self.fuse_time.collect()
- for metric in metrics:
- for sample in metric.samples:
- if sample.name == 'arvmount_fuse_operations_seconds_sum':
- ops_sum += sample.value
- return ops_sum
+
+ # We should have one parent summary metric, and child summaries for each op
+ if len(metrics) != 1:
+ _logger.warning("arv-mount metrics: invalid number of prometheus Summary metrics")
+ return []
+ return metrics[0].samples
+
+ def time_sum_samples(self):
+ return [sample for sample in self.time_samples() if sample.name == 'arvmount_fuse_operations_seconds_sum']
+
+ def time_sum_value(self, opname):
+ for op_sum in self.time_sum_samples():
+ if op_sum.labels['op'] == opname:
+ return op_sum.value
+
+ def time_sum_value_func(self, opname):
+ return lambda: self.time_sum_value(opname)
@destroy_time.time()
@catch_exceptions
diff --git a/services/fuse/arvados_fuse/crunchstat.py b/services/fuse/arvados_fuse/crunchstat.py
index e856d839b..a21ca3140 100644
--- a/services/fuse/arvados_fuse/crunchstat.py
+++ b/services/fuse/arvados_fuse/crunchstat.py
@@ -55,9 +55,12 @@ def statlogger(interval, keep, ops):
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 sample in ops.time_sum_samples():
+ cur_op = sample.labels['op']
+ fusetimes.append(StatWriter("fuseopstime", interval, [
+ Stat(cur_op, ops.time_sum_value_func(cur_op))
+ ]))
blk = StatWriter("blkio:0:0", interval, [
Stat("write", ops.write_counter.get),
Stat("read", ops.read_counter.get)
@@ -68,8 +71,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()
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list