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.1 by ab11, Mon Nov 27 19:44:32 2000 UTC vs.
Revision 1.11 by tdb, Tue May 21 16:47:12 2002 UTC

# Line 1 | Line 1
1 + /*
2 + * i-scream central monitoring system
3 + * http://www.i-scream.org.uk
4 + * Copyright (C) 2000-2002 i-scream
5 + *
6 + * This program is free software; you can redistribute it and/or
7 + * modify it under the terms of the GNU General Public License
8 + * as published by the Free Software Foundation; either version 2
9 + * of the License, or (at your option) any later version.
10 + *
11 + * This program is distributed in the hope that it will be useful,
12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 + * GNU General Public License for more details.
15 + *
16 + * You should have received a copy of the GNU General Public License
17 + * along with this program; if not, write to the Free Software
18 + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 + */
20 +
21 + //---PACKAGE DECLARATION---
22 +
23 + //---IMPORTS---
24 +
25 + import java.io.*;
26 + import java.net.*;
27 + import java.util.*;
28 +
29 + /**
30 + * Gathers system information then outputs it as XML
31 + * Collects data based on properties gained from the
32 + * configurator then packages these up using XMLFormatter
33 + * and outputs them if the timeout has passed.
34 + *
35 + * @author  $Author$
36 + * @version $Id$
37 + */
38   class SystemMonitor {
39  
40 <        public SystemMonitor( Config config ){
4 <                // create a new instace, get the info we need out of config
5 <                // like things to monitor
6 <                
7 <                lastCheck = System.currentTimeMillis();
8 <                sequence = 0;
40 > //---FINAL ATTRIBUTES---
41  
42 + //---STATIC METHODS---
43  
44 <                // why oh why wont ultra edit let me put Long in the next line? oh its trying to
12 <                // correct keywords =|
13 <                checkInterval = Long.parseLong(config.getProperty("UDPINTEVAL"));
14 <                
15 <        }
44 > //---CONSTRUCTORS---
45  
46 <        public String getInfo(){
47 <                // called to retrieve the stored averages and output them as a XML string
48 <                XMLFormatter xml = new XMLFormatter("packet");
49 <                
50 <                // just send some dummy info for now.
51 <                xml.addNest("packet_info");
52 <                    String currentTime = Long.toString(System.currentTimeMillis());
53 <                    xml.addElement("date_time", currentTime );
54 <                    xml.addElement("sequence", Integer.toString(sequence));
55 <                xml.closeNest();
56 <                xml.addNest("core");
57 <                    xml.addElement("cpu","100");
58 <                    xml.addElement("memory","200");
30 <                xml.closeNest();
31 <                xml.addNest("additional");
32 <                    xml.addElement("users","20");
33 <                xml.closeNest();
34 <                
35 <                // MUST FIX THIS..!!!!
36 <                while ( System.currentTimeMillis() < ( lastCheck + checkInterval ) ){
37 <                  // errm do nothing.. block or something.          
38 <                }
39 <                
40 <                // increment sequence.
41 <                sequence++;
42 <                                
43 <                // finally return a string
44 <                return xml.returnXML();
45 <        } // getinfo()
46 > /**
47 > * Public constructor for the class. Takes in a Config
48 > * object to gain its properties from.
49 > *
50 > */  
51 > public SystemMonitor( Config config ){
52 >        // create a new instace, get the info we need out of config
53 >        // like things to monitor
54 >        
55 >        lastCheck = System.currentTimeMillis();
56 >        sequence = 1;
57 >        
58 >    }
59  
60 <    // last time the system data was returned.
60 > //---PUBLIC METHODS---
61 >
62 >   /**
63 >    * Gathers system information and will black until the timeout has passed.
64 >    *
65 >    * @return the system information in an XML packet
66 >    */
67 >    public String getInfo(){
68 >        // called to retrieve the stored averages and output them as a XML string
69 >        String host = new String();
70 >        String ip = new String();
71 >        try {
72 >            host = InetAddress.getLocalHost().getHostName();
73 >            ip = InetAddress.getLocalHost().getHostAddress();
74 >        } catch(UnknownHostException e) {
75 >            System.out.println(e);
76 >        }
77 >        String date = Long.toString(System.currentTimeMillis());
78 >        XMLFormatter xml = new XMLFormatter("packet", "machine_name=\""+host+"\" ip=\""+ip+"\" date=\""+date+"\" seq_no=\""+sequence+"\" type=\"data\"");
79 >
80 >        // get and decode the data
81 >        DecodeCPU_TXT details = new DecodeCPU_TXT();
82 >
83 >        // add the decoded info
84 >        xml.addString(details.getItems());
85 >        
86 >        // increment sequence.
87 >        sequence++;
88 >        // lastCheck = System.currentTimeMillis();
89 >                
90 >        // finally return a string
91 >        return xml.returnXML();
92 >    } // getinfo()
93 >    
94 > //---PRIVATE METHODS---
95 >
96 > //---ACCESSOR/MUTATOR METHODS---
97 >
98 > //---ATTRIBUTES---
99 >
100      private long lastCheck;
101      private int sequence;
102 <    private long checkInterval;
102 >
103 > //---STATIC ATTRIBUTES---
104  
105 < } // class
105 > } // class

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines