| 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: ab11 $ | 
 
 
 
 
 | 35 | * @version $Id: SystemMonitor.java,v 1.9 2001/03/19 17:30:17 ab11 Exp $ | 
 
 
 
 
 | 36 | */ | 
 
 
 
 
 | 37 | class SystemMonitor { | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 | //---FINAL ATTRIBUTES--- | 
 
 
 
 
 | 40 |  | 
 
 
 
 
 | 41 | //---STATIC METHODS--- | 
 
 
 
 
 | 42 |  | 
 
 
 
 
 | 43 | //---CONSTRUCTORS--- | 
 
 
 
 
 | 44 |  | 
 
 
 
 
 | 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 | //---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 |  | 
 
 
 
 
 | 102 | //---STATIC ATTRIBUTES--- | 
 
 
 
 
 | 103 |  | 
 
 
 
 
 | 104 | } // class |