X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/311b22e026909b8be128ae0752c013b118dd6f0e..aa6ca6f50268f29c7cce987f5957796826bfeeed:/tools/crunchstat-summary/crunchstat_summary/summarizer.py diff --git a/tools/crunchstat-summary/crunchstat_summary/summarizer.py b/tools/crunchstat-summary/crunchstat_summary/summarizer.py index 3780ef783d..a876257abc 100644 --- a/tools/crunchstat-summary/crunchstat_summary/summarizer.py +++ b/tools/crunchstat-summary/crunchstat_summary/summarizer.py @@ -4,7 +4,6 @@ import arvados import collections -import arvados.util import crunchstat_summary.dygraphs import crunchstat_summary.reader import datetime @@ -246,6 +245,27 @@ class Summarizer(object): self.job_tot[category][stat] += val logger.debug('%s: done totals', self.label) + missing_category = { + 'cpu': 'CPU', + 'mem': 'memory', + 'net:': 'network I/O', + 'statfs': 'storage space', + } + for task_stat in self.task_stats.values(): + for category in task_stat.keys(): + for checkcat in missing_category: + if checkcat.endswith(':'): + if category.startswith(checkcat): + missing_category.pop(checkcat) + break + else: + if category == checkcat: + missing_category.pop(checkcat) + break + for catlabel in missing_category.values(): + logger.warning('%s: %s stats are missing -- possible cluster configuration issue', + self.label, catlabel) + def long_label(self): label = self.label if hasattr(self, 'process') and self.process['uuid'] not in label: @@ -365,7 +385,7 @@ class Summarizer(object): constraint_key, int(used_cores)) - # FIXME: This needs to be updated to account for current nodemanager algorithms + # FIXME: This needs to be updated to account for current a-d-c algorithms def _recommend_ram(self): """Recommend an economical RAM constraint for this job. @@ -537,7 +557,7 @@ class ProcessSummarizer(Summarizer): # Pre-Arvados v1.4 everything is in 'log' # For 1.4+ containers have no logs and container_requests have them in 'log_uuid', not 'log' log_collection = self.process.get('log', self.process.get('log_uuid')) - if log_collection and self.process.get('state') != arvados.util.CR_UNCOMMITTED: + if log_collection and self.process.get('state') != 'Uncommitted': # arvados.util.CR_UNCOMMITTED: try: rdr = crunchstat_summary.reader.CollectionReader(log_collection) except arvados.errors.NotFoundError as e: