diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-07-26 22:41:27 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-07-26 22:42:10 +0530 |
| commit | 1a02f33dc4e8315a62843a331c8f1c1af05b3861 (patch) | |
| tree | c1cc23543f5ab35948b250d9cdf9166cf6389779 /src/com.gluster.storage.management.server | |
| parent | a61cfcf7e36ba89deff92b09a6041469f04acefe (diff) | |
Story #29 - Memory Usage Graph
Diffstat (limited to 'src/com.gluster.storage.management.server')
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; + } } |
