[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