|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecteu.xtreemos.system.eventmachine.stage.AbstractStage
eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage
eu.xtreemos.system.eventmachine.stage.Abstract2wayStage
eu.xtreemos.xosd.resourcemonitor.ResourceMonitor
public class ResourceMonitor
Service class, responsible for obtaining resource information, converting it and passing it on.
Field Summary | |
---|---|
static CResourceMonitorConfig |
config
|
private java.lang.String |
gangliaHostName
hostname or IP address to connect to for Ganglia data. |
private java.net.Socket |
gangliaSocket
|
(package private) int |
gangliaTCPPort
TCP port to connect to for Ganglia data. |
private static org.apache.log4j.Logger |
logger
logger object |
java.util.ArrayList<java.lang.reflect.Field> |
monitoredMetricFields
The collection that contains only those fileds that the user would like to be monitored, and is a subset of resMetricFields. |
private java.lang.String |
monitorType
|
static java.util.ArrayList<java.lang.reflect.Field> |
resMetricFields
The collection that contains all the fields of ResourceDescriptorRecord that can be monitored on a node. |
private java.lang.Boolean |
socketInUse
|
private java.lang.Object |
socketMutex
socket mutex. don't laugh. |
Fields inherited from class eu.xtreemos.system.eventmachine.stage.Abstract2wayStage |
---|
context, counter, curContext, sink |
Fields inherited from class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage |
---|
queue |
Fields inherited from class eu.xtreemos.system.eventmachine.stage.AbstractStage |
---|
handlerChain, handlerGroup, handlerThreads, name, running, serviceListeners |
Constructor Summary | |
---|---|
ResourceMonitor()
|
Method Summary | |
---|---|
java.lang.Boolean |
addResAttribute(java.lang.String attribute)
|
private org.w3c.dom.Document |
getGangliaElement()
|
java.lang.String |
getHandledEventType()
|
java.util.ArrayList<java.lang.String> |
getProxyResMetricsReply(java.util.ArrayList<java.lang.String> res)
|
java.util.ArrayList<java.lang.String> |
getResMetrics()
|
java.util.Hashtable<java.lang.String,java.lang.String> |
getResMonResponse(java.util.Hashtable<java.lang.String,java.lang.Object> glue)
|
java.lang.Object |
getResMonResponseFailure(java.lang.Exception ex)
|
java.util.Hashtable |
getXMLExtractorReply(java.util.Hashtable list)
|
java.util.Hashtable |
getXMLExtractorReplyXMon(java.util.Hashtable list)
|
void |
handleEvent(java.lang.Object event)
|
void |
init()
|
java.util.Hashtable<java.lang.String,java.lang.Object> |
query()
Queries the local monitor data provider for machine status, translates it into GLUE 1.2-compliant XML and transforms it into a Hashtable. |
java.util.Hashtable<java.lang.String,java.lang.String> |
queryResInfo()
Queries the local monitor data provider for machine status and returns the values of the metrics being monitored on this node. |
java.util.ArrayList<ResourceDescriptorRecord> |
queryResourceDescriptor()
Queries the local monitor data provider for machine status and returns a filled-in collection (that should at this point contain a single element) of resource descriptor records. |
Methods inherited from class eu.xtreemos.system.eventmachine.stage.Abstract2wayStage |
---|
getContext, removeContext, SendException, SendException, SendException, SendReply, SendReply, SendReply, setSink |
Methods inherited from class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage |
---|
dequeue, getSource |
Methods inherited from class eu.xtreemos.system.eventmachine.stage.AbstractStage |
---|
addHandler, addHandler, addServiceListener, getName, getShortName, getThreadCount, notifyServiceInitialised, notifyServiceStarted, notifyServiceStopped, processEvent, removeHandler, removeServiceListener, setThreadCount, start, stop |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.net.Socket gangliaSocket
private java.lang.String gangliaHostName
int gangliaTCPPort
private static final org.apache.log4j.Logger logger
private java.lang.Object socketMutex
private java.lang.Boolean socketInUse
private java.lang.String monitorType
public static CResourceMonitorConfig config
public static java.util.ArrayList<java.lang.reflect.Field> resMetricFields
public java.util.ArrayList<java.lang.reflect.Field> monitoredMetricFields
Constructor Detail |
---|
public ResourceMonitor()
Method Detail |
---|
public java.lang.Object getResMonResponseFailure(java.lang.Exception ex) throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable<java.lang.String,java.lang.String> getResMonResponse(java.util.Hashtable<java.lang.String,java.lang.Object> glue) throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable<java.lang.String,java.lang.String> queryResInfo() throws java.net.ConnectException, java.io.IOException, java.lang.Exception, java.lang.InterruptedException
getResMetrics()
and regulated by
addResAttribute(String)
.
If the monitorType entry in the configuration file is set to "ganglia",
then the method obtains the information from the localhost ganglia
daemon. If there is no monitoring system, the service will return
a generic answer, contained in the file files/genericAnswer.xml .
Alternatively, if the configuration is set to monitorType = "xmonitor",
then the information is obtained from local kernel hooks which need
to be pre-installed.
The call is self-sustainable and does not invlove other services.
java.net.ConnectException
java.io.IOException
java.lang.Exception
java.lang.InterruptedException
private org.w3c.dom.Document getGangliaElement() throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable<java.lang.String,java.lang.Object> query() throws java.lang.Exception
java.lang.Exception
public java.util.ArrayList<ResourceDescriptorRecord> queryResourceDescriptor() throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getXMLExtractorReplyXMon(java.util.Hashtable list)
public java.util.Hashtable getXMLExtractorReply(java.util.Hashtable list)
public java.util.ArrayList<java.lang.String> getResMetrics()
public java.util.ArrayList<java.lang.String> getProxyResMetricsReply(java.util.ArrayList<java.lang.String> res)
public java.lang.Boolean addResAttribute(java.lang.String attribute)
public java.lang.String getHandledEventType()
getHandledEventType
in class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage
public void handleEvent(java.lang.Object event) throws java.lang.Exception
handleEvent
in interface eu.xtreemos.system.eventmachine.queue.IEventHandler
handleEvent
in class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage
java.lang.Exception
public void init()
init
in interface eu.xtreemos.system.eventmachine.stage.IStage
init
in class eu.xtreemos.system.eventmachine.stage.AbstractStage
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |