Jenkins uptime - how long since last restart

前端 未结 3 1224
迷失自我
迷失自我 2021-02-09 03:34

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

相关标签:
3条回答
  • 2021-02-09 03:52

    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.

    0 讨论(0)
  • 2021-02-09 03:56

    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()

    0 讨论(0)
  • 2021-02-09 03:58

    Just check the "all system logs" at <jenkins_url>/log/all - scroll the log to the top.

    No need for Groovy scripts.

    P.S. But, as pointed out, this option will work only if the restart was recent and the corresponding log entries were not overwritten.

    0 讨论(0)
提交回复
热议问题