From b8749c42d9ae650f4e2dbeeda2a8cdae9266ff2a Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Tue, 2 Aug 2022 10:30:10 -0400 Subject: [PATCH] 19280: Add metrics checkpoints Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- sdk/cwl/arvados_cwl/executor.py | 1 + sdk/cwl/arvados_cwl/runner.py | 26 +++++++++++++++----------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/sdk/cwl/arvados_cwl/executor.py b/sdk/cwl/arvados_cwl/executor.py index 9620079ed1..3e8115ddb1 100644 --- a/sdk/cwl/arvados_cwl/executor.py +++ b/sdk/cwl/arvados_cwl/executor.py @@ -594,6 +594,7 @@ The 'jobs' API is no longer supported. # Upload direct dependencies of workflow steps, get back mapping of files to keep references. # Also uploads docker images. + logger.info("Uploading workflow dependencies") merged_map = upload_workflow_deps(self, tool, runtimeContext) # Recreate process object (ArvadosWorkflow or diff --git a/sdk/cwl/arvados_cwl/runner.py b/sdk/cwl/arvados_cwl/runner.py index ed4abbe2ee..934aeb4018 100644 --- a/sdk/cwl/arvados_cwl/runner.py +++ b/sdk/cwl/arvados_cwl/runner.py @@ -49,8 +49,10 @@ from .pathmapper import ArvPathMapper, trim_listing, collection_pdh_pattern, col from ._version import __version__ from . import done from . context import ArvRuntimeContext +from .perf import Perf logger = logging.getLogger('arvados.cwl-runner') +metrics = logging.getLogger('arvados.cwl-runner.metrics') def trim_anonymous_location(obj): """Remove 'location' field from File and Directory literals. @@ -653,7 +655,8 @@ FileUpdates = namedtuple("FileUpdates", ["resolved", "secondaryFiles"]) def upload_workflow_deps(arvrunner, tool, runtimeContext): # Ensure that Docker images needed by this workflow are available - upload_docker(arvrunner, tool, runtimeContext) + with Perf(metrics, "upload_docker"): + upload_docker(arvrunner, tool, runtimeContext) document_loader = tool.doc_loader @@ -662,16 +665,17 @@ def upload_workflow_deps(arvrunner, tool, runtimeContext): def upload_tool_deps(deptool): if "id" in deptool: discovered_secondaryfiles = {} - pm = upload_dependencies(arvrunner, - "%s dependencies" % (shortname(deptool["id"])), - document_loader, - deptool, - deptool["id"], - False, - runtimeContext, - include_primary=False, - discovered_secondaryfiles=discovered_secondaryfiles, - cache=tool_dep_cache) + with Perf(metrics, "upload_dependencies %s" % shortname(deptool["id"]): + pm = upload_dependencies(arvrunner, + "%s dependencies" % (shortname(deptool["id"])), + document_loader, + deptool, + deptool["id"], + False, + runtimeContext, + include_primary=False, + discovered_secondaryfiles=discovered_secondaryfiles, + cache=tool_dep_cache) document_loader.idx[deptool["id"]] = deptool toolmap = {} for k,v in pm.items(): -- 2.30.2