summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.server
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-07-26 22:41:27 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-07-26 22:42:10 +0530
commit1a02f33dc4e8315a62843a331c8f1c1af05b3861 (patch)
treec1cc23543f5ab35948b250d9cdf9166cf6389779 /src/com.gluster.storage.management.server
parenta61cfcf7e36ba89deff92b09a6041469f04acefe (diff)
Story #29 - Memory Usage Graph
Diffstat (limited to 'src/com.gluster.storage.management.server')
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/AbstractStatsFactory.java2
-rw-r--r--src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/MemoryStatsFactory.java34
2 files changed, 34 insertions, 2 deletions
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/AbstractStatsFactory.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/AbstractStatsFactory.java
index 820cc542..b6e95270 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/AbstractStatsFactory.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/AbstractStatsFactory.java
@@ -51,7 +51,7 @@ public abstract class AbstractStatsFactory implements StatsFactory {
return stats;
} catch(Exception e) {
// server might be offline - continue with next one
- logger.warn("Couldn't fetch CPU stats from server [" + serverName + "]!", e);
+ logger.warn("Couldn't fetch stats from server [" + serverName + "]!", e);
if(removeServerOnError) {
serverNames.remove(serverName);
}
diff --git a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/MemoryStatsFactory.java b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/MemoryStatsFactory.java
index 65f4e44e..fcbf43d5 100644
--- a/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/MemoryStatsFactory.java
+++ b/src/com.gluster.storage.management.server/src/com/gluster/storage/management/server/utils/MemoryStatsFactory.java
@@ -18,19 +18,51 @@
*******************************************************************************/
package com.gluster.storage.management.server.utils;
+import java.util.List;
+
import org.springframework.stereotype.Component;
+import com.gluster.storage.management.core.model.ServerStats;
+import com.gluster.storage.management.core.model.ServerStatsRow;
+
/**
*
*/
@Component
public class MemoryStatsFactory extends AbstractStatsFactory {
- private static final String MEM_STATS_SCRIPT = "get_rrd_mem_details.py";
+ private static final String MEM_STATS_SCRIPT = "get_rrd_memory_details.py";
@Override
public String getStatsScriptName() {
return MEM_STATS_SCRIPT;
}
+ @Override
+ public ServerStats fetchStats(String serverName, String period, String... args) {
+ ServerStats stats = super.fetchStats(serverName, period, args);
+
+ // stats returned by rrd script contains five columns - user, free, cache, buffer, total
+ // out of this, the "user" memory includes cached and buffer. We remove them to get the
+ // actual memory used by "user"
+ for(ServerStatsRow row : stats.getRows()) {
+ List<Double> data = row.getUsageData();
+ Double user = data.get(0);
+ Double free = data.get(1);
+ Double cache = data.get(2);
+ Double buffer = data.get(3);
+ Double total = data.get(4);
+
+ Double actualUser = user - cache - buffer;
+
+ // convert all figures from bytes to percentages
+ data.set(0, (actualUser * 100) / total);
+ data.set(1, (free * 100) / total);
+ data.set(2, (cache * 100) / total);
+ data.set(3, (buffer * 100) / total);
+ data.set(4, (total * 100) / total);
+ }
+
+ return stats;
+ }
}