Skip to content

Commit 9167cd3

Browse files
authored
server: use /prod/stat to get uptime instead of the uptime command (#11670)
1 parent 0cbebbd commit 9167cd3

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

server/src/main/java/com/cloud/server/StatsCollector.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -937,12 +937,12 @@ private void getProcFileSystemData(@NotNull ManagementServerHostStatsEntry newEn
937937
logger.info(String.format("used memory from /proc: %d", newEntry.getSystemMemoryUsed()));
938938
}
939939
try {
940-
String bootTime = Script.runSimpleBashScript("uptime -s");
941-
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.ENGLISH);
940+
String bootTime = Script.runSimpleBashScript("date -d @$(grep btime /proc/stat | awk '{print $2}') '+%Y-%m-%d %H:%M:%S'");
941+
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
942942
Date date = formatter.parse(bootTime);
943943
newEntry.setSystemBootTime(date);
944944
} catch (ParseException e) {
945-
logger.error("can not retrieve system uptime");
945+
logger.error("can not retrieve system uptime", e);
946946
}
947947
String maxuse = Script.runSimpleBashScript(String.format("ps -o vsz= %d", newEntry.getPid()));
948948
newEntry.setSystemMemoryVirtualSize(Long.parseLong(maxuse) * 1024);

0 commit comments

Comments
 (0)