在 Cromwell Server 配置完成后,如何快捷的进行提交、停止工作流、流程失败后如何快速定位问题以及工作流完成后如何如何快速查看运行日志、查看工作流的 Metrics 信息、工作流产生的费用等手段,这些问题就变成了 server 运维工作的基本诉求。
Cromwell 以 server 的方式运行后是支持通过 API 接口获取以上信息的,但是有二次开发的工作量;而 widdler 是针对 Cromwell Server API 接口开发的命令行工具,通过 widdler 命令行工具减少运维成本。
本文主要介绍阿里云对 widdler 工具的扩展,通过 widdler 工具查询指定工作流的作业运行状态、后端引擎的运行时信息、费用查询、问题定位调查以及子任务日志查看等功能。
widdler 默认在阿里云批量计算提供的 Cromwell server 镜像中安装。可以直接使用,无需做安装操作。
由于涉及到个人阿里云运行数据的查询,需要在使用之前设置对应账号的 AK 信息、以及后端执行引擎所部署的region信息。
命令格式:
widdler config -i id -k key -r cn-zhangjiakou
提交工作流之前对 WDL 做语法校验,排除部分低级问题;减少后续提交工作流后由于低级问题导致的流程失败。
命令格式:
widdler validate echo.wdl inputs.json
命令格式:
widdler run echo.wdl inputs.json -l test
其中:test 为 label,可以根据样本进行打标签,后续可以按 label 做过滤。
命令格式:
widdler abort workflowId
命令格式:
widdler query
其中:默认获取当前 user 7 天内的工作流信息;可以根据 user label等信息来筛选工作流信息;其他使用方法参考 help 信息。
命令格式:
widdler query workflowId
命令格式:
widdler describe workflowId
其中:”stepName” 表示工作流的某个自步骤的名称;”status” 表示当前步骤的运行状态”成功、失败、运行中”;”progress” 表示当前步骤的进度,如”4/4” 表示当前步骤存在4个子任务全部执行完成; 若是”2/4” 则表示当前步骤存在4个任务,已经完成2个。”elapse”表示当前步骤的所有子任务执行总耗时时间(不包括机器的启动时间); “coretime”表示当前步骤所有子任务消耗的核时时间(不包括机器的启动时间)。
命令格式:
widdler describe workflowId -t stepName
shardIndex 是 Cromwell 将每个 task 的子任务按 shardIndex 做索引,对应的是批量计算的一个作业。通过该命令可以看到指定 task 对应的统计信息。
命令格式:
widdler stat workflowId
其中:”cpuCore” 表示当前步骤中使用对应实例的 CPU 核数,”cpuUsage” 表示当前步骤所有任务从开始到当前(若当前任务结束状态则表示从开始到结束)的 CPU 平均利用率;”memSize” 表示当前步骤中使用对应实例的内存大小,”memUsage” 表示当前步骤中所有任务从开始到当前的MEM平均利用率;”sysDisk” 表示当前步骤实例的系统盘大小(默认 40GB),”sysDiskUsage” 表示当前步骤的所有任务在当前时间点的磁盘平均利用率;”dataDisk” 表示实例的数据盘大小(默认没有),”dataDiskUsage” 表示当前步骤的所有任务在当前时间点的磁盘平均利用率。
命令格式:
widdler stat workflowId -t stepName
查询某个步骤对应的 Metrics 信息;可能某个步骤存在多个 scatter,那么每个 scatter 运行情况如何,则可以通过本命令获取到。
命令格式:
widdler billing workflowId
命令格式:
widdler log workflowId
通过 log 查询命令,可以查看工作流的实际运行情况,执行过程是否符合预期可以通过该命令做到一键查看。stdout 以及 stderr 日志小于 1MB 的,会直接在屏幕上显示出来;超过 1MB 的需要借助 OSS 工具查看。
命令格式:
widdler explain workflowId
通过该命令可以一键查询工作流失败的原因,展示出现问题的步骤,输出该步骤的对应失败任务的 stdout 以及 stderr 信息,快速排查问题。
HTTPS证书配置提交时提示“证书链不齐全”,如何进行证书链补齐? 域名开启HTTPS...
面临的场景 金融风控 用户画像库 爬虫抓取信息 反欺诈系统 订单数据 个性化推荐 ...
如果你想了解Python和JavaScript之间的区别,那么本文适合你。 这两种语言非常流...
作者 | 门柳 来源 | 阿里技术公众号 去年成为了内网技术分享平台的年度作者,受...
云服务器 必须备案吗?也不是的。使用 云服务器 是否备案,取决于你使用什么样的...
腾讯云云服务器 CVM 将于2021年3月10日起进行部分价格下调。本次调价覆盖国内多...
文章简介 本文将通过理论+实践的方式从头到尾总结Redis中的哨兵机制。文章内容 ...
IT管理员需要采用正确的策略和工具来预测、预防、克服常见的边缘计算安全风险,...
谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器...
毫无疑问,Python 是一门强类型语言。强类型语言。强类型语言! 这就意味着,不...