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.10 by tdb, Sat May 18 18:15:57 2002 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines