ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/client/monitors/Memory__Monitor.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/client/monitors/Memory__Monitor.java (file contents):
Revision 1.11 by tdb, Tue May 21 16:47:16 2002 UTC vs.
Revision 1.12 by tdb, Tue May 28 17:11:01 2002 UTC

# Line 70 | Line 70 | public class Memory__Monitor extends MonitorSkeleton {
70          Register reg = (Register) _hosts.get(source);
71  
72          // get the packet data
73 <        double memoryTotal, memoryFree;
73 >        double memoryTotal, memoryFree, memoryCache;
74          try {
75              String total = packet.getParam("packet.memory.total");
76              String free = packet.getParam("packet.memory.free");
77              if(total==null || free==null) {
78 <                throw new NumberFormatException("Memory data invalid");
78 >                throw new NumberFormatException("Memory data invalid or not supplied");
79              }
80              memoryTotal = Double.parseDouble(total);
81              memoryFree = Double.parseDouble(free);
82 +            // get hold of the cache data.. default to 0
83 +            memoryCache = 0.0;
84 +            String cache = packet.getParam("packet.memory.cache");
85 +            if(cache != null) {
86 +                memoryCache = Double.parseDouble(cache);
87 +            }
88          } catch (NumberFormatException e) {
89              _logger.write(this.toString(), Logger.WARNING, "Received packet from "+source+" with bad memory information: "+e);
90              // don't try to continue and process
# Line 90 | Line 96 | public class Memory__Monitor extends MonitorSkeleton {
96             String option = _cp.getProperty("Host." + source, "Monitor." + _name + ".thresholdMeasure");
97             if (option.equals("VALUE")) {
98                 useValue = true;
99 <           }                            
99 >           }
100          } catch (PropertyNotFoundException e) {
101              // we default to percentage
102          }
103 <
103 >        
104 >        boolean useCache = false;
105 >        try {
106 >           int useCacheAsFree = Integer.parseInt(_cp.getProperty("Host." + source, "Monitor." + _name + ".useCacheAsFree"));
107 >           useCache = (useCacheAsFree == 1);
108 >        } catch (PropertyNotFoundException e) {
109 >            // we default to false
110 >        } catch (NumberFormatException e) {
111 >            // we default to false
112 >        }
113 >        
114          // this  bit determines if the memory check is a % check
115          // or a kb check
116          String type;
# Line 102 | Line 118 | public class Memory__Monitor extends MonitorSkeleton {
118          int newThreshold;
119          if(useValue) {
120              // kb memory available
121 <            curValue = memoryFree;
121 >            if(useCache) {
122 >                // NOTE: we take cache as being "probably free" for this check
123 >                curValue = memoryFree + memoryCache;
124 >            } else {
125 >                curValue = memoryFree;
126 >            }
127              // negate check
128              newThreshold = checkAttributeThreshold(curValue, reg, true);
129              type = "kb";
130          } else {
131              // % memory in use
132 <            curValue = (1 - (memoryFree / memoryTotal)) * 100;
132 >            if(useCache) {
133 >                // NOTE: we take cache as being "probably free" for this check
134 >                curValue = (1 - ((memoryFree + memoryCache) / memoryTotal)) * 100;
135 >            } else {
136 >                curValue = (1 - (memoryFree / memoryTotal)) * 100;
137 >            }
138              // normal check
139              newThreshold = checkAttributeThreshold(curValue, reg, false);
140              type = "%";
# Line 121 | Line 147 | public class Memory__Monitor extends MonitorSkeleton {
147          String strCurValue = nf.format(curValue);
148          
149          // set the attributeName nicely
150 <        String attributeName = "Memory in use " + type;
150 >        String attributeName = type + " Memory in use";
151 >        if(useCache) {
152 >            attributeName += " (ex. cache)";
153 >        }
154          
155          processAlert(newThreshold, attributeName, reg, source, strCurValue);
156      }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines