diff --git a/src/library/sysadm-systeminfo.cpp b/src/library/sysadm-systeminfo.cpp index 33c5635..89d56cf 100644 --- a/src/library/sysadm-systeminfo.cpp +++ b/src/library/sysadm-systeminfo.cpp @@ -160,3 +160,17 @@ QJsonObject SysInfo::externalDevicePaths() { // Return the devices / mounts return retObject; } + +// KPM 1-21-2016 +// This needs to beefed up as well, so we return more stats on arc, wired, etc +QJsonObject SysInfo::memoryPercentage() { + QJsonObject retObject; + //SYSCTL: vm.stats.vm.v__count + QStringList info = General::RunCommand("sysctl -n vm.stats.vm.v_page_count vm.stats.vm.v_wire_count vm.stats.vm.v_active_count").split("\n"); + if(info.length()<3){ return retObject; } //error in fetching information + //List output: [total, wired, active] + double perc = 100.0* (info[1].toLong()+info[2].toLong())/(info[0].toDouble()); + retObject.insert("memoryused", qRound(perc)); + return retObject; +} + diff --git a/src/library/sysadm-systeminfo.h b/src/library/sysadm-systeminfo.h index 75ed40a..d2c654a 100644 --- a/src/library/sysadm-systeminfo.h +++ b/src/library/sysadm-systeminfo.h @@ -18,6 +18,7 @@ public: static QJsonObject cpuPercentage(); static QJsonObject cpuTemps(); static QJsonObject externalDevicePaths(); + static QJsonObject memoryPercentage(); }; } //end of pcbsd namespace diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index de3c2b8..c5e870a 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -271,6 +271,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmSystemInfoRequest(const QJso ok = true; out->insert("externalmounts", sysadm::SysInfo::externalDevicePaths()); } + if(act=="memorypercentage"){ + ok = true; + out->insert("memorypercentage", sysadm::SysInfo::memoryPercentage()); + } } //end of "action" key usage