#jenkins
#дженкинс
Вопрос:
Возможно ли увидеть, как долго работает экземпляр / мастер Jenkins?
Я попытался поискать в «Управление Дженкинсом», но не могу его там найти. Я знаю, что мог бы войти в систему и проверить процесс на компьютере, но возможно ли это сделать в веб-интерфейсе Jenkins?
Этот URL показывает белую линию, когда он был перезапущен… но это не настолько интуитивно.
<jenkins-url>/monitoring?part=graphamp;graph=usedMemoryamp;period=mois
Ответ №1:
Вы можете запустить groovy script в веб-интерфейсе Jenkins из: Manage Jenkins > Script Console и использовать Jenkins API. Если вы хотите знать, сколько дней Дженкинс работает:
import java.util.concurrent.TimeUnit
long lastRestarted = Jenkins.instance.toComputer().getConnectTime()
long now = System.currentTimeMillis()
println TimeUnit.MILLISECONDS.toDays(now - lastRestarted)
getConnectTime()
на главном компьютере должно быть указано время его перезапуска.
http://javadoc.jenkins.io/hudson/model/Computer.html#getConnectTime ()
Комментарии:
1. Хорошо, мы, вероятно, запустим его как системный скрипт groovy, чтобы показать ему имя сборки. Большое спасибо!
2. Для версии Jenkins 2.32.2 результат равен нулю.
3. У меня это работает в версии Jenkins 2.73.2. Как вы ее запустили?
4. В этом случае вы можете заменить
toDays(...)
в последней строке наtoMinutes(...)
или любое другое желаемое вами разрешение.
Ответ №2:
Uptime
Класс в ядре Jenkins Core существует уже давно (Jenkins 1.538). Таким образом, используя тот же принцип с консолью сценариев, код можно сделать более читаемым и надежным:
println "Jenkins has been started " (ExtensionList.lookupSingleton(Uptime.class).uptime / 1000 / 60 ) " minutes ago"
Которое покажет, например:
Jenkins был запущен 175.8678166667 минут назад
Примечание: ExtensionList.lookupSingleton
было введено в Jenkins 2.87. Поэтому, если вы используете более раннюю версию, используйте ExtensionList.lookup(Uptime.class).get(0)
вместо этого.