ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/java/SystemMonitor.java
(Generate patch)

Comparing projects/cms/source/host/java/SystemMonitor.java (file contents):
Revision 1.3 by ab11, Thu Nov 30 04:11:00 2000 UTC vs.
Revision 1.5 by ab11, Thu Dec 7 18:25:37 2000 UTC

# Line 3 | Line 3
3   //---IMPORTS---
4  
5   import java.util.Random;
6 + import java.io.*;
7  
8   /**
9   * Gathers system information then outputs it as XML
# Line 36 | Line 37 | class SystemMonitor {
37  
38          // why oh why wont ultra edit let me put Long in the next line? oh its trying to
39          // correct keywords =|
40 <        checkInterval = Long.parseLong(config.getProperty("UDPUpdateTime")) * 1000;
40 >        try {
41 >                udpcheckInterval = Long.parseLong(config.getProperty("UDPUpdateTime")) * 1000;
42 >        }
43 >        catch ( NumberFormatException e ){
44 >                System.out.println("The value for UDPUpdateTime is invalid, using a default");
45 >                // 5 mins
46 >                udpcheckInterval = 5000 * 60;
47 >        }
48          // make the check interval into seconds
49          
50      }
# Line 52 | Line 60 | class SystemMonitor {
60          // called to retrieve the stored averages and output them as a XML string
61          XMLFormatter xml = new XMLFormatter("packet");
62          
63 +        // the process to run
64 +        try {
65 +                Process proc = Runtime.getRuntime().exec("/usr/local/sbin/top -s1 -d2 0 > top.txt");
66 +                // this process will take atleast 2 seconds to complete
67 +                try {
68 +                        proc.waitFor();
69 +                }
70 +                catch ( InterruptedException e ){
71 +                        
72 +                }
73 +                        
74 +        }
75 +        catch ( IOException e ){
76 +                
77 +        }
78 +        
79 +        
80 +        
81 +        // now do some text processing.
82 +        DecodeCPU_TXT details = new DecodeCPU_TXT("top.txt");
83 +        
84 +        
85          Random rand = new Random();
86          
87          // just send some dummy info for now.
# Line 60 | Line 90 | class SystemMonitor {
90              xml.addElement("date_time", currentTime );
91              xml.addElement("sequence", Integer.toString(sequence));
92          xml.closeNest();
93 <        xml.addNest("core");
94 <            xml.addElement("cpu",""+rand.nextInt(100));
95 <            xml.addElement("memory",""+rand.nextInt(100));
66 <        xml.closeNest();
67 <        if ( rand.nextBoolean() ){
68 <                xml.addNest("additional");
69 <                    xml.addElement("users",""+rand.nextInt(30));
70 <                xml.closeNest();
71 <        }
93 >        xml.addString(details.getItems());
94 >        
95 >        
96          // MUST FIX THIS..!!!!
97          try {
98 <                Thread.sleep(( lastCheck + checkInterval )-System.currentTimeMillis());
98 >                long updateIn = ( lastCheck + udpcheckInterval )-System.currentTimeMillis();
99 >                if ( updateIn > 0 ){
100 >                        Thread.sleep(updateIn);
101 >                }
102 >                else
103 >                {
104 >                        Thread.sleep(defaultUpdateTime);
105 >                }
106          }
107          catch( InterruptedException e ){
108                  System.out.println("Sleep interrupted");
# Line 93 | Line 124 | class SystemMonitor {
124  
125      private long lastCheck;
126      private int sequence;
127 <    private long checkInterval;
127 >    private long udpcheckInterval;
128 >    private final long defaultUpdateTime = 60000;
129  
130   //---STATIC ATTRIBUTES---
131  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines