Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jenkins uptime - how long since last restart

Tags:

jenkins

Is it possible to see how long a Jenkins instance/master has been running?

I've tried looking around in "Manage Jenkins" but can't find it there. I know I could log in and check the process on the machine, but is it possible to do it in Jenkins web UI?

This URL shows a white line when it was restarted... but it's not that intuitive.

<jenkins-url>/monitoring?part=graph&graph=usedMemory&period=mois
like image 839
MaTePe Avatar asked Oct 21 '16 11:10

MaTePe


2 Answers

There has been an Uptime class in Jenkins Core since a long time (Jenkins 1.538). So using the same principle with the script console, the code can be made more readable and robust:

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

Which will show, e.g.:

Jenkins has been started 175.8678166667 minutes ago

Note: ExtensionList.lookupSingleton was introduced in Jenkins 2.87. So if you're using an earlier version, use ExtensionList.lookup(Uptime.class).get(0) instead.

like image 70
Baptiste Mathus Avatar answered Sep 18 '22 02:09

Baptiste Mathus


You can run groovy script on Jenkins web-ui from: Manage Jenkins > Script Console, and use Jenkins API. If you want to know how many days Jenkins has been running:

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

getConnectTime() of the master computer should be the time when it restarted. http://javadoc.jenkins.io/hudson/model/Computer.html#getConnectTime()

like image 20
arasio Avatar answered Sep 19 '22 02:09

arasio