全部产品

Cromwell Server 运维

更新时间:2020-06-15 10:02:13

在 Cromwell Server 配置完成后,如何快捷的进行提交、停止工作流、流程失败后如何快速定位问题以及工作流完成后如何如何快速查看运行日志、查看工作流的 Metrics 信息、工作流产生的费用等手段,这些问题就变成了 server 运维工作的基本诉求。

Cromwell 以 server 的方式运行后是支持通过 API 接口获取以上信息的,但是有二次开发的工作量;而 widdler 是针对 Cromwell Server API 接口开发的命令行工具,通过 widdler 命令行工具减少运维成本。

本文主要介绍阿里云对 widdler 工具的扩展,通过 widdler 工具查询指定工作流的作业运行状态、后端引擎的运行时信息、费用查询、问题定位调查以及子任务日志查看等功能。

1. widdler 安装

widdler 默认在阿里云批量计算提供的 Cromwell server 镜像中安装。可以直接使用,无需做安装操作。

2. 配置 widdler

由于涉及到个人阿里云运行数据的查询,需要在使用之前设置对应账号的 AK 信息、以及后端执行引擎所部署的region信息。

config

命令格式:

  1. widdler config -i id -k key -r cn-zhangjiakou

3. 校验 WDL

提交工作流之前对 WDL 做语法校验,排除部分低级问题;减少后续提交工作流后由于低级问题导致的流程失败。

validate

命令格式:

  1. widdler validate echo.wdl inputs.json

4. 提交工作流

run

命令格式:

  1. widdler run echo.wdl inputs.json -l test

其中:test 为 label,可以根据样本进行打标签,后续可以按 label 做过滤。

5. 终止工作流

命令格式:

  1. widdler abort workflowId

abort

6. 获取工作流

6.1 获取工作流列表

命令格式:

  1. widdler query

query

其中:默认获取当前 user 7 天内的工作流信息;可以根据 user label等信息来筛选工作流信息;其他使用方法参考 help 信息。

6.2 获取工作流 Meta

命令格式:

  1. widdler query workflowId

7. 获取工作流运行状态

命令格式:

  1. widdler describe workflowId

describe

其中:”stepName” 表示工作流的某个自步骤的名称;”status” 表示当前步骤的运行状态”成功、失败、运行中”;”progress” 表示当前步骤的进度,如”4/4” 表示当前步骤存在4个子任务全部执行完成; 若是”2/4” 则表示当前步骤存在4个任务,已经完成2个。”elapse”表示当前步骤的所有子任务执行总耗时时间(不包括机器的启动时间); “coretime”表示当前步骤所有子任务消耗的核时时间(不包括机器的启动时间)。

命令格式:

  1. widdler describe workflowId -t stepName

subdescribe

shardIndex 是 Cromwell 将每个 task 的子任务按 shardIndex 做索引,对应的是批量计算的一个作业。通过该命令可以看到指定 task 对应的统计信息。

8. 获取工作流统计信息

命令格式:

  1. widdler stat workflowId

stat

其中:”cpuCore” 表示当前步骤中使用对应实例的 CPU 核数,”cpuUsage” 表示当前步骤所有任务从开始到当前(若当前任务结束状态则表示从开始到结束)的 CPU 平均利用率;”memSize” 表示当前步骤中使用对应实例的内存大小,”memUsage” 表示当前步骤中所有任务从开始到当前的MEM平均利用率;”sysDisk” 表示当前步骤实例的系统盘大小(默认 40GB),”sysDiskUsage” 表示当前步骤的所有任务在当前时间点的磁盘平均利用率;”dataDisk” 表示实例的数据盘大小(默认没有),”dataDiskUsage” 表示当前步骤的所有任务在当前时间点的磁盘平均利用率。

命令格式:

  1. widdler stat workflowId -t stepName

substat

查询某个步骤对应的 Metrics 信息;可能某个步骤存在多个 scatter,那么每个 scatter 运行情况如何,则可以通过本命令获取到。

9. 获取工作流费用

命令格式:

  1. widdler billing workflowId

newbill

10. 获取工作流运行日志

命令格式:

  1. widdler log workflowId

通过 log 查询命令,可以查看工作流的实际运行情况,执行过程是否符合预期可以通过该命令做到一键查看。stdout 以及 stderr 日志小于 1MB 的,会直接在屏幕上显示出来;超过 1MB 的需要借助 OSS 工具查看。

log

11. 工作流问题定位

命令格式:

  1. widdler explain workflowId

通过该命令可以一键查询工作流失败的原因,展示出现问题的步骤,输出该步骤的对应失败任务的 stdout 以及 stderr 信息,快速排查问题。

explain

  • 更多其他功能请参考 widdler 的帮助信息