import arvados.collection
import crunchstat_summary.summarizer
+import crunchstat_summary.reader
from .arvdocker import arv_docker_get_image
from . import done
body={"container_request": {"properties": properties}}
).execute(num_retries=self.arvrunner.num_retries)
- if logc is not None:
+ if logc is not None and self.job_runtime.enable_usage_report is not False:
try:
- summerizer = crunchstat_summary.summarizer.NewSummarizer(self.uuid, arv=self.arvrunner.api)
- summerizer.run()
+ summarizer = crunchstat_summary.summarizer.ContainerRequestSummarizer(
+ record,
+ collection_object=logc,
+ label=self.name,
+ arv=self.arvrunner.api)
+ summarizer.run()
with logc.open("usage_report.html", "wt") as mr:
- mr.write(summerizer.html_report())
+ mr.write(summarizer.html_report())
logc.save()
+
+ # Post warnings about nodes that are under-utilized.
+ for rc in summarizer._recommend_gen(lambda x: x):
+ logger.warning(x)
+
except Exception as e:
- logger.error("%s unable to generate resource usage report",
+ logger.warning("%s unable to generate resource usage report",
self.arvrunner.label(self),
exc_info=(e if self.arvrunner.debug else False))
if runtimeContext.prefer_cached_downloads:
command.append("--prefer-cached-downloads")
+ if runtimeContext.enable_usage_report is True:
+ command.append("--enable-usage-report")
+
+ if runtimeContext.enable_usage_report is False:
+ command.append("--disable-usage-report")
+
if self.fast_parser:
command.append("--fast-parser")