詹金斯的正常运行时间 - 自上次重启以来多长时间

MaT*_*ePe 7 jenkins

是否可以看到Jenkins实例/主机运行了多长时间?

我试过环顾"管理詹金斯",但在那里找不到它.我知道我可以登录并检查机器上的进程,但是可以在Jenkins Web UI中进行吗?

此URL在重新启动时会显示一条白线......但它并不直观.

<jenkins-url>/monitoring?part=graph&graph=usedMemory&period=mois
Run Code Online (Sandbox Code Playgroud)

ara*_*sio 17

您可以在Jenkins web-ui上运行groovy脚本:Manage Jenkins> Script Console,并使用Jenkins API.如果你想知道Jenkins运行了多少天:

import java.util.concurrent.TimeUnit
long lastRestarted = Jenkins.instance.toComputer().getConnectTime()
long now =  System.currentTimeMillis()
println TimeUnit.MILLISECONDS.toDays(now - lastRestarted)
Run Code Online (Sandbox Code Playgroud)

getConnectTime()主计算机应该是重新启动的时间. http://javadoc.jenkins.io/hudson/model/Computer.html#getConnectTime()

  • 如果你今天重新启动,它会显示结果为零. (3认同)
  • 对于 Jenkins 版本。2.32.2 显示结果为零。 (2认同)
  • 在这种情况下,您可能希望将最后一行中的“toDays(...)”替换为“toMinutes(...)”或任何您想要的分辨率。 (2认同)

Bap*_*hus 9

Jenkins Core 中已经有一个Uptime类很长时间了(Jenkins 1.538)。因此,使用与脚本控制台相同的原理,可以使代码更具可读性和健壮性:

println "Jenkins has been started " + (ExtensionList.lookupSingleton(Uptime.class).uptime / 1000 / 60 ) + " minutes ago"
Run Code Online (Sandbox Code Playgroud)

这将显示,例如:

Jenkins 已于 175.8678166667 分钟前启动

注意:ExtensionList.lookupSingleton在 Jenkins 2.87 中引入。因此,如果您使用的是早期版本,请改用ExtensionList.lookup(Uptime.class).get(0)