如何在Jenkins Pipeline中轻松获取Unix时间戳计算阶段耗时
Jenkins Pipeline获取秒级Unix时间戳最简方案
你要的10位秒级时间戳(格式如1624869043)可以直接通过Jenkins内置的Java方法获取,无需安装额外插件,是目前实现成本最低的方案:
// 直接调用即可生成符合要求的时间戳 def currentUnixTime = (System.currentTimeMillis() / 1000).toLong()
耗时统计使用示例
你可以在需要统计的阶段/步骤首尾各取一次时间戳,差值就是对应环节的耗时,参考完整Pipeline写法:
pipeline { agent any stages { stage('业务执行阶段') { steps { script { // 记录阶段开始时间戳 def stageStartTime = (System.currentTimeMillis() / 1000).toLong() // 此处替换为你实际要执行的业务逻辑 sh 'sleep 3' // 记录阶段结束时间戳,计算耗时 def stageEndTime = (System.currentTimeMillis() / 1000).toLong() def stageCost = stageEndTime - stageStartTime echo "当前阶段执行耗时:${stageCost} 秒" } } } } }
- 如果需要统计全流水线多个阶段的总耗时,可以在pipeline块外层定义全局变量存储流水线启动时间,所有阶段执行完成后计算差值即可
- 该方法兼容声明式、脚本式两种Pipeline写法,所有Jenkins版本原生支持,不需要额外配置安全权限
内容的提问来源于stack exchange,提问作者Djé Djé
相关产品推荐
相关产品推荐

