Added load averages and memory percentage to capabilities.
This commit is contained in:
parent
106c9dfb7e
commit
bd7433f22b
1 changed files with 23 additions and 13 deletions
|
@ -305,10 +305,9 @@ class cpudata {
|
||||||
};
|
};
|
||||||
|
|
||||||
void checkCapable(JSON::Value & capa){
|
void checkCapable(JSON::Value & capa){
|
||||||
|
capa.null();
|
||||||
std::ifstream cpuinfo("/proc/cpuinfo");
|
std::ifstream cpuinfo("/proc/cpuinfo");
|
||||||
if (!cpuinfo){
|
if (cpuinfo){
|
||||||
capa["cpu"].null();
|
|
||||||
}else{
|
|
||||||
std::map<int, cpudata> cpus;
|
std::map<int, cpudata> cpus;
|
||||||
char line[300];
|
char line[300];
|
||||||
int proccount = -1;
|
int proccount = -1;
|
||||||
|
@ -357,9 +356,7 @@ void checkCapable(JSON::Value & capa){
|
||||||
capa["threads"] = total_threads;
|
capa["threads"] = total_threads;
|
||||||
}
|
}
|
||||||
std::ifstream meminfo("/proc/meminfo");
|
std::ifstream meminfo("/proc/meminfo");
|
||||||
if (!meminfo){
|
if (meminfo){
|
||||||
capa["mem"].null();
|
|
||||||
}else{
|
|
||||||
char line[300];
|
char line[300];
|
||||||
int bufcache = 0;
|
int bufcache = 0;
|
||||||
while (meminfo.good()){
|
while (meminfo.good()){
|
||||||
|
@ -372,17 +369,30 @@ void checkCapable(JSON::Value & capa){
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//parse lines here
|
|
||||||
long long int i;
|
long long int i;
|
||||||
if (sscanf(line, "MemTotal : %Li kB", &i) == 1){capa["mem"]["total"] = i*1024;}
|
if (sscanf(line, "MemTotal : %Li kB", &i) == 1){capa["mem"]["total"] = i/1024;}
|
||||||
if (sscanf(line, "MemFree : %Li kB", &i) == 1){capa["mem"]["free"] = i*1024;}
|
if (sscanf(line, "MemFree : %Li kB", &i) == 1){capa["mem"]["free"] = i/1024;}
|
||||||
if (sscanf(line, "SwapTotal : %Li kB", &i) == 1){capa["mem"]["swaptotal"] = i*1024;}
|
if (sscanf(line, "SwapTotal : %Li kB", &i) == 1){capa["mem"]["swaptotal"] = i/1024;}
|
||||||
if (sscanf(line, "SwapFree : %Li kB", &i) == 1){capa["mem"]["swapfree"] = i*1024;}
|
if (sscanf(line, "SwapFree : %Li kB", &i) == 1){capa["mem"]["swapfree"] = i/1024;}
|
||||||
if (sscanf(line, "Buffers : %Li kB", &i) == 1){bufcache += i*1024;}
|
if (sscanf(line, "Buffers : %Li kB", &i) == 1){bufcache += i/1024;}
|
||||||
if (sscanf(line, "Cached : %Li kB", &i) == 1){bufcache += i*1024;}
|
if (sscanf(line, "Cached : %Li kB", &i) == 1){bufcache += i/1024;}
|
||||||
}
|
}
|
||||||
capa["mem"]["used"] = capa["mem"]["total"].asInt() - capa["mem"]["free"].asInt() - bufcache;
|
capa["mem"]["used"] = capa["mem"]["total"].asInt() - capa["mem"]["free"].asInt() - bufcache;
|
||||||
capa["mem"]["cached"] = bufcache;
|
capa["mem"]["cached"] = bufcache;
|
||||||
|
capa["load"]["memory"] = ((capa["mem"]["used"].asInt() + (capa["mem"]["swaptotal"].asInt() - capa["mem"]["swapfree"].asInt())) * 100) / capa["mem"]["total"].asInt();
|
||||||
|
}
|
||||||
|
std::ifstream loadavg("/proc/loadavg");
|
||||||
|
if (loadavg){
|
||||||
|
char line[300];
|
||||||
|
int bufcache = 0;
|
||||||
|
loadavg.getline(line, 300);
|
||||||
|
//parse lines here
|
||||||
|
float onemin, fivemin, fifteenmin;
|
||||||
|
if (sscanf(line, "%f %f %f", &onemin, &fivemin, &fifteenmin) == 3){
|
||||||
|
capa["load"]["one"] = (long long int)(onemin * 100);
|
||||||
|
capa["load"]["five"] = (long long int)(onemin * 100);
|
||||||
|
capa["load"]["fifteen"] = (long long int)(onemin * 100);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue