[arvados] created: 2.7.0-5997-gc0d0d53951
git repository hosting
git at public.arvados.org
Fri Feb 9 22:56:43 UTC 2024
at c0d0d539515c7402dbb18e55052dd761066b08fd (commit)
commit c0d0d539515c7402dbb18e55052dd761066b08fd
Author: Peter Amstutz <peter.amstutz at curii.com>
Date: Fri Feb 9 17:56:28 2024 -0500
19744: Run summarizer at end of container
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>
diff --git a/build/build-dev-docker-jobs-image.sh b/build/build-dev-docker-jobs-image.sh
index b0990d0c49..583b7a54f7 100755
--- a/build/build-dev-docker-jobs-image.sh
+++ b/build/build-dev-docker-jobs-image.sh
@@ -30,7 +30,7 @@ fi
context_dir="$(mktemp --directory --tmpdir dev-jobs.XXXXXXXX)"
trap 'rm -rf "$context_dir"' EXIT INT TERM QUIT
-for src_dir in "$WORKSPACE/sdk/python" "${CWLTOOL:-}" "${CWL_UTILS:-}" "${SALAD:-}" "$WORKSPACE/sdk/cwl"; do
+for src_dir in "$WORKSPACE/sdk/python" "${CWLTOOL:-}" "${CWL_UTILS:-}" "${SALAD:-}" "$WORKSPACE/tools/crunchstat-summary" "$WORKSPACE/sdk/cwl"; do
if [[ -z "$src_dir" ]]; then
continue
fi
diff --git a/sdk/cwl/arvados_cwl/arvcontainer.py b/sdk/cwl/arvados_cwl/arvcontainer.py
index 584ca1713a..534f940b03 100644
--- a/sdk/cwl/arvados_cwl/arvcontainer.py
+++ b/sdk/cwl/arvados_cwl/arvcontainer.py
@@ -27,6 +27,8 @@ from cwltool.job import JobBase
import arvados.collection
+import crunchstat_summary.summarizer
+
from .arvdocker import arv_docker_get_image
from . import done
from .runner import Runner, arvados_jobs_image, packed_workflow, trim_anonymous_location, remove_redundant_fields, make_builder
@@ -497,11 +499,14 @@ class ArvadosContainer(JobBase):
else:
processStatus = "permanentFail"
- if processStatus == "permanentFail" and record["log_uuid"]:
- logc = arvados.collection.CollectionReader(record["log_uuid"],
- api_client=self.arvrunner.api,
- keep_client=self.arvrunner.keep_client,
- num_retries=self.arvrunner.num_retries)
+ logc = None
+ if record["log_uuid"]:
+ logc = arvados.collection.Collection(record["log_uuid"],
+ api_client=self.arvrunner.api,
+ keep_client=self.arvrunner.keep_client,
+ num_retries=self.arvrunner.num_retries)
+
+ if processStatus == "permanentFail" and logc is not None:
label = self.arvrunner.label(self)
done.logtail(
logc, logger.error,
@@ -527,6 +532,16 @@ class ArvadosContainer(JobBase):
uuid=self.uuid,
body={"container_request": {"properties": properties}}
).execute(num_retries=self.arvrunner.num_retries)
+
+ if logc is not None:
+ summerizer = crunchstat_summary.summarizer.NewSummarizer(self.uuid)
+ summerizer.run()
+ with logc.open("metrics_report.txt", "wt") as mr:
+ mr.write(summerizer.text_report())
+ with logc.open("metrics_report.html", "wt") as mr:
+ mr.write(summerizer.html_report())
+ logc.save()
+
except WorkflowException as e:
# Only include a stack trace if in debug mode.
# A stack trace may obfuscate more useful output about the workflow.
diff --git a/sdk/cwl/setup.py b/sdk/cwl/setup.py
index 223af95159..043b52cb81 100644
--- a/sdk/cwl/setup.py
+++ b/sdk/cwl/setup.py
@@ -39,6 +39,7 @@ setup(name='arvados-cwl-runner',
'cwltool==3.1.20230601100705',
'schema-salad==8.4.20230601112322',
'arvados-python-client{}'.format(pysdk_dep),
+ 'crunchstat-summary{}'.format(pysdk_dep),
'ciso8601 >= 2.0.0',
'networkx < 2.6',
'msgpack==1.0.3',
diff --git a/sdk/dev-jobs.dockerfile b/sdk/dev-jobs.dockerfile
index 0169b94706..f66f670d81 100644
--- a/sdk/dev-jobs.dockerfile
+++ b/sdk/dev-jobs.dockerfile
@@ -24,7 +24,7 @@ RUN python3 -m pip install --no-cache-dir setuptools wheel
# packages to install.
COPY . /usr/local/src/
# Run a-c-r afterward to check for a successful install.
-RUN python3 -m pip install --no-cache-dir /usr/local/src/* && arvados-cwl-runner --version
+RUN python3 -m pip install --no-cache-dir /usr/local/src/* && arvados-cwl-runner --version && crunchstat-summary --version
RUN /usr/sbin/adduser --disabled-password \
--gecos 'Crunch execution user' crunch && \
diff --git a/tools/crunchstat-summary/crunchstat_summary/command.py b/tools/crunchstat-summary/crunchstat_summary/command.py
index ec7acb8083..71eae51996 100644
--- a/tools/crunchstat-summary/crunchstat_summary/command.py
+++ b/tools/crunchstat-summary/crunchstat_summary/command.py
@@ -9,6 +9,7 @@ import logging
import sys
from crunchstat_summary import logger, summarizer
+from crunchstat_summary._version import __version__
class ArgumentParser(argparse.ArgumentParser):
@@ -46,6 +47,9 @@ class ArgumentParser(argparse.ArgumentParser):
self.add_argument(
'--verbose', '-v', action='count', default=0,
help='Log more information (once for progress, twice for debug)')
+ self.add_argument('--version', action='version',
+ version="%s %s" % (sys.argv[0], __version__),
+ help='Print version and exit.')
class UTF8Decode(object):
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list