else:
return 0
+ def get_latest_avg(daemon_type, daemon_name, counter):
+ data = self.get_counter(daemon_type, daemon_name, counter)[counter]
+ if data:
+ return (data[-1][1], data[-1][2])
+ else:
+ return (0, 0)
+
for server in self.list_servers():
for service in server['services']:
if service['type'] not in ("rgw", "mds", "osd", "mon"):
if counter_schema['priority'] < prio_limit:
continue
- counter_info = counter_schema
- counter_info['value'] = get_latest(service['type'], service['id'], counter_path)
+ counter_info = dict(counter_schema)
+
+ # Also populate count for the long running avgs
+ if counter_schema['type'] & self.PERFCOUNTER_LONGRUNAVG:
+ v, c = get_latest_avg(
+ service['type'],
+ service['id'],
+ counter_path
+ )
+ counter_info['value'], counter_info['count'] = v, c
+ result[svc_full_name][counter_path] = counter_info
+ else:
+ counter_info['value'] = get_latest(
+ service['type'],
+ service['id'],
+ counter_path
+ )
+
result[svc_full_name][counter_path] = counter_info
self.log.debug("returning {0} counter".format(len(result)))