The purpose of this topic is to describe the data that is exposed by CLM Server Monitoring feature via JMX, and the operations available.
CLM Server Monitoring exposes its monitoring information by means of JMX MBeans. An MBean is a managed Java object, that follows the design patterns of the JMX specification, and represents a resource. MBeans have an Object Name, a series of attribute values, operations and notifications.
CLM Server Monitoring generate
Monitors MBeans objects that provide performance monitoring information and management operations for different monitored resources contexts. Monitors also provide counters information based on rolled up data for dynamic monitored resources or server operations. The metrics gathered by these monitors allow the generation of CLM Server Monitoring performance alerts (i.e. Problems), when allowed levels are exceeded for the monitored resources/operations. Threshold values can be set to accommodate the needs based on the infrastructure knowledge or expected system behavior. A special monitor bean called
Smarter Server provides centralized management of the rest of monitors to enable/disable them or modify certain threshold values (note that this may change in a future release based on
Remove individual monitor enable/threshold properties from SmarterServerConfigMBean).
When a monitored resource operation exceeds the expected performance threshold,
Problem objects are created providing information of the error condition and trace to objects that contain performance information for analysis. This page also contains reference information of the structure of data of that JMX Problem objects.
CLM Server Monitoring also provides a JMX interface to server
Diagnostics, allowing you to use this interface for running the same type of operations that you can find in the "Diagnostics" section of the CLM application "Server Administration" page.
CLM Server Monitoring - JMX objects format
The
Object Name format for a JMX object is specified as:
<domain>:<key1>=<value1>,<key2>=<value2>,...
The domain element for CLM Server Monitoring JMX objects is based on
team.server<application public URI context>@<port>
. The rest of naming elements are used as follows:
key1 = type
value1 = <type name> ; The object type
key2 = name
value2 = <object name> ; The name of performance object
key3 = id
name3 = <object instance identifier> ; The name of a specific instantiation of a monitored resource
JMX Objects
attributes are simply name/value pairs associated with the JMX container object specified by the Object Name. They can be read-only, or read/writeable.
CLM Server Monitoring - Monitors reference
CLM Server Monitoring
Monitors are JMX objects that provide performance monitoring information and management operations for different resources contexts. Each monitor is specialized for a particular domain, thus provides monitoring information for resources of that particular domain.
The CLM Server Monitoring JMX based monitors can be differentiated between the ones that provide management information, and the ones that provide monitoring/performance metrics. From the later, all but the User Session Monitor can be enabled/disabled; while User Session Monitor is always enabled. The performance monitors provide rolled up information metrics of the resources of their domain, while finer grained monitoring information of resources in the domain is exposed in form of monitor child MBeans.
Following are links to dedicated pages that describe each monitor JMX object in detail. The performance monitors pages also contain information of the
Problem objects that a monitor can issue when a operation in its domain exceeds the configured threshold. For a description of these elements check the
CLM Server Monitoring Problems reference subsection.
Management/Configuration Monitors:
Performance Monitors:
CLM Server Monitoring - Problems reference
Whenever a monitored resource or operation behavior exceeds the threshold set in its monitor, a
Problem is generated. CLM Server Monitoring Problem JMX objects contain information that uniquely allows you to identify the problem, and trace it to the monitored resource and execution instance that originated it.
Generated Problems JMX objects generally follow the name convention:
team.server.<application public URI context>@<port>:type=Problem <MonitorType>,name="<monitoredObjectName>",id=<UUID> <br/>
Where the value of
<MonitorType>
matches the value of the "type" key attribute of the JMX monitor object name for which the problem is generated, and the value of "name" attribute is the same in both JMX objects: the issued problem and the monitor resource object; thus providing trace between the two.
When a problem is related with a user session operation, a problem object is also generated providing trace to the particular activity. These problem objects follow a different naming convention of this general form:
team.server.<application public URI context>@<port>:type=Problem Activity,id=<ActivityID> <br/>
Where the problem
<ActivityID>
matches the value of the JMX object user session's activity ID. See the
User Session Monitor specification for further details.
In this release, all monitor problems but the Request Monitor ones implement the
com.ibm.team.server.monitoring.jmx.beans.ResourceInstanceMBean
interface, which exposes the following atrributes:
- Duration
- FinishDate
- Identifier
- Links
- Name
- RDF
- StartDate
- ThreadID
- ThreadName
- ThreadTraceRDF
- URI
While the Request Monitor issued problems also expose the attributes: Count, Method, RequestURI, SessionId and UserName.
Detailed information about Problem JMX objects is contained in the
CLM Server Monitoring - Monitors reference section, where each monitor section documents the associated problems that it can issue.
CLM Server Monitoring - Diagnostics objects reference
The CLM Server Monitoring Diagnostics objects provides a JMX interface for information and operation of the CLM application server diagnostics that are available in the:
<application public URI>:<port>/<applicationContext>/admin#action=com.ibm.team.repository.admin.serverDiagnostics
, location of each application.
A different JMX object will be registered for each type of diagnostics available, following this convention:
JMX Interface Name: com.ibm.team.server.monitoring.jmx.beans.ServerDiagnosticMBean
JMX Object Name: team.server.<application public URI context>@<port>:type=Diagnostic,name="<Diagnostic>"
Each of these objects basically defines three attributes that describes itself:
-
Title
: the name of the diagnostics. It matches the value of the JMX object name "name" key
-
Id
: the qualified name of the class implementing the diagnostics test
-
Description
: description of the diagnostic
Similarly, each object exposes a "run" operation that, when invoked, will result in the execution of the diagnostics test. A child MBean will be generated with the actual diagnostics test execution results
The following wiki pages provide specific information of the JMX interface of each Diagnostic object:
External links: