Package tigase.stats
Class StatisticsCollector
- java.lang.Object
-
- tigase.server.BasicComponent
-
- tigase.server.AbstractComponentRegistrator<StatisticsContainer>
-
- tigase.stats.StatisticsCollector
-
- All Implemented Interfaces:
ClusteredComponentIfc
,Configurable
,XMPPService
,ConfigurationChangedAware
,Initializable
,RegistrarBean
,ComponentRegistrator
,ServerComponent
,ShutdownHook
,VHostListener
@Bean(name="stats", parent=Kernel.class, active=true) @ConfigType({DefaultMode,SessionManagerMode,ConnectionManagersMode,ComponentMode}) public class StatisticsCollector extends AbstractComponentRegistrator<StatisticsContainer> implements ShutdownHook, RegistrarBean
Class StatisticsCollector
Created: Tue Nov 22 07:07:11 2005- Author:
- Artur Hefczyc
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class tigase.server.BasicComponent
BasicComponent.ServerInfoVHostItemExtension
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ERRORS_STATISTICS_MBEAN_NAME
static java.lang.String
STATISTICS_MBEAN_NAME
static java.lang.String
STATS_HIGH_MEMORY_LEVEL_KEY
static java.lang.String
STATS_HISTORY_SIZE_PROP_KEY
static int
STATS_HISTORY_SIZE_PROP_VAL
static java.lang.String
STATS_UPDATE_INTERVAL_PROP_KEY
-
Fields inherited from class tigase.server.AbstractComponentRegistrator
components
-
Fields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManager
-
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_CLASS_NAME, AUTH_DOMAIN_POOL_CLASS, AUTH_REPO_DOMAINS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_POOL_CLASS, AUTH_REPO_URL_PROP_KEY, BOSH_CLUST_COMP_CLASS_NAME, BOSH_COMP_CLASS_NAME, C2S_CLUST_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, CL_COMP_CLASS_NAME, CLUSTER_CONECT, CLUSTER_CONTR_CLASS_NAME, CLUSTER_LISTEN, CLUSTER_MODE, CLUSTER_NODES, CLUSTER_NODES_PROP_KEY, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, DEF_AMP_NAME, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_COMP_PROT_NAME, DEF_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DEF_WS2S_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_URL_PROP_VAL, DRUPALWP_REPO_CLASS_PROP_VAL, DUMMY_REPO_CLASS_PROP_VAL, EVENTBUS_CLASS_NAME, EXT_COMP_CLASS_NAME, GEN_ADMINS, GEN_AUTH_DB, GEN_AUTH_DB_URI, GEN_COMP_CLASS, GEN_COMP_NAME, GEN_CONF, GEN_CONFIG, GEN_CONFIG_ALL, GEN_CONFIG_COMP, GEN_CONFIG_CS, GEN_CONFIG_DEF, GEN_CONFIG_SM, GEN_DEBUG, GEN_DEBUG_PACKAGES, GEN_EXT_COMP, GEN_MAX_QUEUE_SIZE, GEN_SCRIPT_DIR, GEN_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_USER_DB_URI_PROP_KEY, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITOR_CLASS_NAME, MONITOR_CLUST_CLASS_NAME, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, PGSQL_REPO_CLASS_PROP_VAL, PGSQL_REPO_URL_PROP_VAL, ROUTER_COMP_CLASS_NAME, S2S_CLUST_COMP_CLASS_NAME, S2S_COMP_CLASS_NAME, SHARED_AUTH_REPO_PARAMS_PROP_KEY, SHARED_AUTH_REPO_PROP_KEY, SHARED_USER_REPO_PARAMS_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUST_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, STANZA_WHITE_CHAR_ACK, STANZA_XMPP_ACK, STATS_CLASS_NAME, STRINGPREP_PROCESSOR, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_DOMAIN_POOL_CLASS, USER_REPO_DOMAINS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_CLASS, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK
-
Fields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
-
-
Constructor Summary
Constructors Constructor Description StatisticsCollector()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
componentAdded(StatisticsContainer component)
Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponents
collection.void
componentRemoved(StatisticsContainer component)
Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponents
collection.StatisticsList
getAllStats()
void
getAllStats(StatisticsList list)
java.util.List<java.lang.String>
getComponentsNames()
void
getComponentStats(java.lang.String name, StatisticsList list)
java.util.List<Element>
getDiscoFeatures(JID from)
Method returns list of features provided by this component for provided JID.Element
getDiscoInfo(java.lang.String node, JID jid, JID from)
Returns service discovery info for the component.java.util.List<Element>
getDiscoItems(java.lang.String node, JID jid, JID from)
Returns service discovery items for the component.java.lang.String
getName()
Method returns name of the component.void
initializationCompleted()
Method is called byMessageRouter
when all the startup components of the server have been loaded and configured through setProperties(...) call.boolean
isCorrectType(ServerComponent component)
Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class.void
processPacket(Packet packet, java.util.Queue<Packet> results)
processPacket
is a blocking processing method implemented by all components.void
register(Kernel kernel)
Method called when bean is being registered allowing developer to programatically register other beans.void
release()
Method called when component is being stopped and unloaded.void
setArchivizers(StatisticsArchivizerIfc[] archivizers)
void
setName(java.lang.String name)
Method used to assign component name (localpart of the component)java.lang.String
shutdown()
protected void
statsUpdated()
void
unregister(Kernel kernel)
Method called while bean is being unregistered.-
Methods inherited from class tigase.server.AbstractComponentRegistrator
addComponent, deleteComponent, getComponent, newPacketId
-
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, beanConfigurationChanged, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, everyHour, everyMinute, everySecond, getComponentId, getComponentInfo, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoCategoryType, getDiscoDescription, getDiscoExtensionsForm, getDiscoFeatures, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getStatistics, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, initBindings, initialize, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, onNodeConnected, onNodeDisconnected, processScriptCommand, reloadScripts, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setClusterController, setCommandsACL, setCompId, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getComponentInfo, isInitializationComplete
-
-
-
-
Field Detail
-
ERRORS_STATISTICS_MBEAN_NAME
public static final java.lang.String ERRORS_STATISTICS_MBEAN_NAME
- See Also:
- Constant Field Values
-
STATISTICS_MBEAN_NAME
public static final java.lang.String STATISTICS_MBEAN_NAME
- See Also:
- Constant Field Values
-
STATS_HISTORY_SIZE_PROP_KEY
public static final java.lang.String STATS_HISTORY_SIZE_PROP_KEY
- See Also:
- Constant Field Values
-
STATS_HISTORY_SIZE_PROP_VAL
public static final int STATS_HISTORY_SIZE_PROP_VAL
- See Also:
- Constant Field Values
-
STATS_UPDATE_INTERVAL_PROP_KEY
public static final java.lang.String STATS_UPDATE_INTERVAL_PROP_KEY
- See Also:
- Constant Field Values
-
STATS_HIGH_MEMORY_LEVEL_KEY
public static final java.lang.String STATS_HIGH_MEMORY_LEVEL_KEY
- See Also:
- Constant Field Values
-
-
Method Detail
-
componentAdded
public void componentAdded(StatisticsContainer component)
Description copied from class:AbstractComponentRegistrator
Method provides a callback mechanism signaling that a new component implementing special interface has been added to the internalcomponents
collection.- Specified by:
componentAdded
in classAbstractComponentRegistrator<StatisticsContainer>
- Parameters:
component
- is a reference to the component just added to the collection.
-
componentRemoved
public void componentRemoved(StatisticsContainer component)
Description copied from class:AbstractComponentRegistrator
Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internalcomponents
collection.- Specified by:
componentRemoved
in classAbstractComponentRegistrator<StatisticsContainer>
- Parameters:
component
- is a reference to the component removed from the collection.
-
initializationCompleted
public void initializationCompleted()
Description copied from interface:ServerComponent
Method is called byMessageRouter
when all the startup components of the server have been loaded and configured through setProperties(...) call. At this point the whole server should be loaded and functional, except initializations taking place in this routine.- Specified by:
initializationCompleted
in interfaceServerComponent
- Overrides:
initializationCompleted
in classBasicComponent
-
processPacket
public void processPacket(Packet packet, java.util.Queue<Packet> results)
Description copied from interface:ServerComponent
processPacket
is a blocking processing method implemented by all components. This method processes packet and returns results instantly without waiting for any resources.- Specified by:
processPacket
in interfaceServerComponent
- Overrides:
processPacket
in classBasicComponent
- Parameters:
packet
- aPacket
value
-
release
public void release()
Description copied from interface:ServerComponent
Method called when component is being stopped and unloaded.- Specified by:
release
in interfaceServerComponent
- Overrides:
release
in classAbstractComponentRegistrator<StatisticsContainer>
-
shutdown
public java.lang.String shutdown()
- Specified by:
shutdown
in interfaceShutdownHook
-
getAllStats
public StatisticsList getAllStats()
-
getAllStats
public void getAllStats(StatisticsList list)
-
getComponentsNames
public java.util.List<java.lang.String> getComponentsNames()
-
getComponentStats
public void getComponentStats(java.lang.String name, StatisticsList list)
-
getDiscoFeatures
public java.util.List<Element> getDiscoFeatures(JID from)
Description copied from class:BasicComponent
Method returns list of features provided by this component for provided JID.- Specified by:
getDiscoFeatures
in interfaceXMPPService
- Overrides:
getDiscoFeatures
in classBasicComponent
- Parameters:
from
- a request sender address. Some service disco elements are meant to be available only to system administrarors. The component is responsible to check whether the sender is the component administrator and return results appropriate.- Returns:
- list of features
-
getDiscoInfo
public Element getDiscoInfo(java.lang.String node, JID jid, JID from)
Description copied from interface:XMPPService
Returns service discovery info for the component. If the jid is null then this is info for the top level request. SM may return disco info on the top level. Other components should not.- Specified by:
getDiscoInfo
in interfaceXMPPService
- Overrides:
getDiscoInfo
in classBasicComponent
- Parameters:
node
- is service discovery node for which the request is made. Is normally null for the component top level request.jid
- is the jid to which the request has been made.from
- is the request sender address. Some service discovery information is only meant for administrators.- Returns:
- returns an XML Element with service discovery data.
-
getDiscoItems
public java.util.List<Element> getDiscoItems(java.lang.String node, JID jid, JID from)
Description copied from interface:XMPPService
Returns service discovery items for the component. If the JID is null then this is request for the top level request. SM may return disco items on the top level, other components should just return it's top level service discovery item for null node.- Specified by:
getDiscoItems
in interfaceXMPPService
- Overrides:
getDiscoItems
in classBasicComponent
- Parameters:
node
- is a service discovery node for which the request has been made.jid
- is the jid to which the request has been made.from
- is the request sender address. Some service discovery information is only meant for administrators.- Returns:
- a list of service discovery items for this component or the component itself disco item for the top level request.
-
getName
public java.lang.String getName()
Description copied from interface:ServerComponent
Method returns name of the component.- Specified by:
getName
in interfaceServerComponent
- Specified by:
getName
in interfaceShutdownHook
- Overrides:
getName
in classBasicComponent
- Returns:
- name of the component
-
setName
public void setName(java.lang.String name)
Description copied from interface:ServerComponent
Method used to assign component name (localpart of the component)- Specified by:
setName
in interfaceServerComponent
- Overrides:
setName
in classBasicComponent
- Parameters:
name
- to be assigned
-
isCorrectType
public boolean isCorrectType(ServerComponent component)
Description copied from class:AbstractComponentRegistrator
Method checks whether the component provides as method parameter is correct type that is implements special interface or extends special class. Result of the method determines whether the component can be added to the internalcomponents
collection.- Specified by:
isCorrectType
in classAbstractComponentRegistrator<StatisticsContainer>
- Parameters:
component
- is a reference to the component being checked.- Returns:
- a
boolean
value oftrue
if the component is of a correct type andfalse
otherwise.
-
register
public void register(Kernel kernel)
Description copied from interface:RegistrarBean
Method called when bean is being registered allowing developer to programatically register other beans.- Specified by:
register
in interfaceRegistrarBean
- Parameters:
kernel
- - instance from local scope
-
unregister
public void unregister(Kernel kernel)
Description copied from interface:RegistrarBean
Method called while bean is being unregistered.- Specified by:
unregister
in interfaceRegistrarBean
- Parameters:
kernel
- - instance from local scope
-
setArchivizers
public void setArchivizers(StatisticsArchivizerIfc[] archivizers)
-
statsUpdated
protected void statsUpdated()
-
-