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 final String`
  `ERRORS_STATISTICS_MBEAN_NAME`
  `static final String`
  `STATISTICS_MBEAN_NAME`
  `static final String`
  `STATS_HIGH_MEMORY_LEVEL_KEY`
  `static final String`
  `STATS_HISTORY_SIZE_PROP_KEY`
  `static final int`
  `STATS_HISTORY_SIZE_PROP_VAL`
  `static final 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

  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 internal `components` collection.
  `void`
  `componentRemoved(StatisticsContainer component)`
  Method provides a callback mechanism signaling that a component implementing special interface has been removed from the internal `components` collection.
  `StatisticsList`
  `getAllStats()`
  `void`
  `getAllStats(StatisticsList list)`
  `List<String>`
  `getComponentsNames()`
  `void`
  `getComponentStats(String name, StatisticsList list)`
  `List<Element>`
  `getDiscoFeatures(JID from)`
  Method returns list of features provided by this component for provided JID.
  `Element`
  `getDiscoInfo(String node, JID jid, JID from)`
  Returns service discovery info for the component.
  `List<Element>`
  `getDiscoItems(String node, JID jid, JID from)`
  Returns service discovery items for the component.
  `String`
  `getName()`
  Method returns name of the component.
  `void`
  `initializationCompleted()`
  Method is called by `MessageRouter` 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, 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(String name)`
  Method used to assign component name (localpart of the component)
  `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 Details

  - ### ERRORS_STATISTICS_MBEAN_NAME

    public static final String ERRORS_STATISTICS_MBEAN_NAME
    See Also:
      - Constant Field Values

  - ### STATISTICS_MBEAN_NAME

    public static final String STATISTICS_MBEAN_NAME
    See Also:
      - Constant Field Values

  - ### STATS_HISTORY_SIZE_PROP_KEY

    public static final 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 String STATS_UPDATE_INTERVAL_PROP_KEY
    See Also:
      - Constant Field Values

  - ### STATS_HIGH_MEMORY_LEVEL_KEY

    public static final String STATS_HIGH_MEMORY_LEVEL_KEY
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### StatisticsCollector

    public StatisticsCollector()

- ## Method Details

  - ### 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 internal `components` collection.
    Specified by:
      `componentAdded` in class `AbstractComponentRegistrator<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 internal `components` collection.
    Specified by:
      `componentRemoved` in class `AbstractComponentRegistrator<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 by `MessageRouter` 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 interface `ServerComponent`
    Overrides:
      `initializationCompleted` in class `BasicComponent`

  - ### processPacket

    public void processPacket(Packet packet, 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 interface `ServerComponent`
    Overrides:
      `processPacket` in class `BasicComponent`
    Parameters:
      `packet` - a `Packet` value

  - ### release

    public void release()
    Description copied from interface: `ServerComponent`
    Method called when component is being stopped and unloaded.
    Specified by:
      `release` in interface `ServerComponent`
    Overrides:
      `release` in class `AbstractComponentRegistrator<StatisticsContainer>`

  - ### shutdown

    public String shutdown()
    Specified by:
      `shutdown` in interface `ShutdownHook`

  - ### getAllStats

    public StatisticsList getAllStats()

  - ### getAllStats

    public void getAllStats(StatisticsList list)

  - ### getComponentsNames

    public List<String> getComponentsNames()

  - ### getComponentStats

    public void getComponentStats(String name, StatisticsList list)

  - ### getDiscoFeatures

    public 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 interface `XMPPService`
    Overrides:
      `getDiscoFeatures` in class `BasicComponent`
    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(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 interface `XMPPService`
    Overrides:
      `getDiscoInfo` in class `BasicComponent`
    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 List<Element> getDiscoItems(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 interface `XMPPService`
    Overrides:
      `getDiscoItems` in class `BasicComponent`
    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 String getName()
    Description copied from interface: `ServerComponent`
    Method returns name of the component.
    Specified by:
      `getName` in interface `ServerComponent`
    Specified by:
      `getName` in interface `ShutdownHook`
    Overrides:
      `getName` in class `BasicComponent`
    Returns:
      name of the component

  - ### setName

    public void setName(String name)
    Description copied from interface: `ServerComponent`
    Method used to assign component name (localpart of the component)
    Specified by:
      `setName` in interface `ServerComponent`
    Overrides:
      `setName` in class `BasicComponent`
    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 internal `components` collection.
    Specified by:
      `isCorrectType` in class `AbstractComponentRegistrator<StatisticsContainer>`
    Parameters:
      `component` - is a reference to the component being checked.
    Returns:
      a `boolean` value of `true` if the component is of a correct type and `false` 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 interface `RegistrarBean`
    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 interface `RegistrarBean`
    Parameters:
      `kernel` - - instance from local scope

  - ### setArchivizers

    public void setArchivizers(StatisticsArchivizerIfc[] archivizers)

  - ### statsUpdated

    protected void statsUpdated()