|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectSOMA.resourceManagement.MonitoringManager
Classe che coordina il monitoraggio e l'accounting. E' un componente del Place Resource Manager. Un demone, quando avviato (cioè messo in stato ON), esegue un ciclo in cui si alternano fasi di lettura dal monitor, di aggiornamento dei dati e delle finestre (se sono aperte), e di controllo dei consumi effettuati dagli agenti (se ci sono agenti da controllare): se si rileva un superamento di soglia viene generato un evento di allarme consegnato all'opportuno gestore. Al momento della creazione è in stato OFF. E' prevista un'autoregolazione della frequenza dei controlli: se il numero di allarmi è sufficientemente basso viene allentata, se invece è elevato viene aumentata. I controlli possono essere disattivati, mantenendo però attive le letture e gli aggiornamenti, settando un opportuno flag. ATTENZIONE: il monitoraggio è effettuabile solamente su un place per host, in caso di configuarazione avanzata si creano dei conflitti al momento ancora non risolti.
PlaceResourceManager
,
Threshold
,
res.JvmMonitor
,
res.ProcessMonitor
Nested Class Summary | |
static class |
MonitoringManager.MonitoringManagerException
Eccezione lanciata da MonitoringManager |
Field Summary | |
(package private) FilteredInfo[] |
agentsDiffConsumptions
Struttura contenente i consumi di tutti gli agenti nell'ultimo intervallo di polling |
(package private) java.util.HashSet |
agentsTotConsumptions
Struttura contenente i consumi di tutti gli agenti dalla nascita |
(package private) boolean |
agentWin
Flag per segnalare la presenza della finestra degli agenti, e, di conseguenza, la necessità di aggiornarla |
(package private) static int |
ALARMS_NUM_MAX
Numero massimo di allarmi al di sopra del quale si intensifica la frequenza dei controlli |
(package private) static int |
ALARMS_NUM_MIN
Numero minimo di allarmi al di sotto del quale si allenta la frequenza dei controlli |
(package private) int |
alarmsNum
Numero di allarmi relativo agli ultimi tre cicli di controllo |
(package private) boolean |
ctrl
Flag per stabilire se effettuare o meno i controlli |
(package private) int |
delta
Intervallo fra le due letture differenziali |
(package private) static int |
DELTA
Valore di default dell'intervallo fra le due letture differenziali |
(package private) java.lang.String |
ErrorDescription
|
(package private) JvmMonitor |
jvmMonitor
Oggetto di interfaccia al Monitor della JVM |
(package private) java.util.Vector |
listeners
Vettore dei listener (gestori di allarme e finestre) |
(package private) java.lang.Thread |
myMonitoringDaemon
Demone che esegue il ciclo di gestione del monitoraggio |
(package private) boolean |
networkWin
Flag per segnalare la presenza della finestra della rete, e, di conseguenza, la necessità di aggiornarla |
(package private) java.io.FileWriter |
out
|
(package private) static int |
POLLING_TIME
Valore di default dell'intervallo di polling |
(package private) int |
pollingTime
Intervallo di polling |
(package private) PlaceResourceManager |
prm
Riferimento al Place Resource Manager |
(package private) ProcessMonitor |
processMonitor
Oggetto di interfaccia al Monitor della macchina (processi e rete) |
(package private) boolean |
processWin
Flag per segnalare la presenza della finestra dei processi, e, di conseguenza, la necessità di aggiornarla |
(package private) java.lang.Object |
status
Stato del demone |
(package private) Threshold |
threshold
Soglie dei consumi usate per effettuare i controlli |
(package private) java.text.DateFormat |
timeStampFormat
|
Fields inherited from interface SOMA.network.connection.Daemon |
ERROR, OFF, ON |
Constructor Summary | |
MonitoringManager(PlaceResourceManager prm)
Costruttore: crea gli oggetti d'interfaccia al monitor e setta soglie e intervallo di polling |
Method Summary | |
void |
addMonitoringManagerListener(MonitoringManagerListener listener)
Registra il listener passato come argomento |
void |
checkEventListener(MonitoringManagerListener lis,
MonitoringManagerEvent ev)
Associa l'evento al listener corrispondente. |
void |
controlAgentsInfo(FilteredInfo[] data)
Confronta i consumi rilevati con i valori delle soglie corrispondenti, lanciando un evento in caso di superamento |
void |
getAgentsInfo()
Preleva le informazioni sui thread Java interrogando il monitor relativo alla JVM. |
void |
getNetworkInfo()
Preleva le informazioni sulla rete interrogando il monitor relativo al SO |
void |
getProcessInfo()
Preleva le informazioni sui processi interrogando il monitor relativo al SO |
java.lang.Object |
getStatus()
Restituisce lo stato |
void |
removeMonitoringManagerListener(MonitoringManagerListener listener)
Rimuove il listener passato come argomento |
void |
run()
Ciclo principale di funzionamento |
void |
sendEvent(MonitoringManagerEvent ev)
Invia l'evento passato come argomento al listener corrispondente |
void |
setCtrl(boolean s)
Permette di attivare/disattivare i controlli |
void |
start()
Mette lo stato a ON e avvia il demone che fa polling |
void |
stop()
Mette lo stato a OFF, e quindi sospende il polling |
java.lang.String |
toString()
Restituisce la rappresentazione in stringa |
void |
upDateAgentsTotConsumptions(ThreadStat data,
AgentID agID)
Aggiorna la tabella in cui vengono memorizzati i consumi di tutti i thread degli agenti, ancora presenti o no, dalla loro nascita |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
java.lang.Thread myMonitoringDaemon
java.util.Vector listeners
boolean agentWin
boolean processWin
boolean networkWin
boolean ctrl
java.lang.Object status
java.lang.String ErrorDescription
FilteredInfo[] agentsDiffConsumptions
java.util.HashSet agentsTotConsumptions
int pollingTime
static final int POLLING_TIME
int delta
static final int DELTA
Threshold threshold
int alarmsNum
static final int ALARMS_NUM_MAX
static final int ALARMS_NUM_MIN
PlaceResourceManager prm
JvmMonitor jvmMonitor
ProcessMonitor processMonitor
java.io.FileWriter out
java.text.DateFormat timeStampFormat
Constructor Detail |
public MonitoringManager(PlaceResourceManager prm)
Method Detail |
public java.lang.Object getStatus()
getStatus
in interface Daemon
public java.lang.String toString()
public void start() throws MonitoringManager.MonitoringManagerException, java.lang.Exception
start
in interface Daemon
MonitoringManager.MonitoringManagerException
java.lang.Exception
public void stop() throws MonitoringManager.MonitoringManagerException, java.lang.Exception
stop
in interface Daemon
MonitoringManager.MonitoringManagerException
java.lang.Exception
public void addMonitoringManagerListener(MonitoringManagerListener listener)
public void removeMonitoringManagerListener(MonitoringManagerListener listener)
public void run()
run
in interface java.lang.Runnable
public void getProcessInfo()
public void getNetworkInfo()
public void getAgentsInfo()
public void upDateAgentsTotConsumptions(ThreadStat data, AgentID agID)
public void controlAgentsInfo(FilteredInfo[] data)
public void sendEvent(MonitoringManagerEvent ev) throws MonitoringManager.MonitoringManagerException
MonitoringManager.MonitoringManagerException
public void checkEventListener(MonitoringManagerListener lis, MonitoringManagerEvent ev)
public void setCtrl(boolean s)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |