The Service Monitor is responsible for gathering performance information of services' invocations processing and response times; and monitoring whether a particular call exceeds the defined threshold.
JMX Interface Name: com.ibm.team.server.monitoring.management.MonitorRollupMBean
JMX Object Name: team.server.<application public URI context>@<port>:type=Service
JMX Object Name Example: team.server./jts@9443:type=Service
A JMX object of this "type" will be created for each monitored service invocation identified by the specific service method call:
- Service Monitor JMX Object Name: team.server.<application public URI context>@<port>:type=Service
- Service JMX Object Name: team.server.<application public URI context>@<port>:type=Service,name="<service method invocation>"
The Service Monitor performance metrics information are rolled up from the performance information from all the individual monitored services methods invocations.
Visually, the Service Monitor objects structure is like the following:
team.server./<URL>@<port>:type=Service
|
|
|---- team.server./<URL>@<port>:type=Service,name="<service1.methodA>"
|---- team.server./<URL>@<port>:type=Service,name="<service1.methodB>"
|---- team.server./<URL>@<port>:type=Service,name="<service2.methodC>"
|---- team.server./<URL>@<port>:type=Service,name="<service2.methodD>"
...
Monitor Attributes
Following are the attributes exposed by the Request Monitor
JMX Attribute |
JMX Type |
Is Writeable? |
Default Value |
Description |
AverageResponseTime |
long |
No |
0 |
Average response time from all the monitored services invocations |
Count |
long |
No |
0 |
Counter of all monitored operations |
Duration |
long |
No |
0 |
Total duration of monitored services invocations processing |
Enabled |
boolean |
Yes |
false |
Whether this monitor is enabled. Default is disabled (false), so no performance monitoring of services calls is performed |
MaximumResponseTime |
long |
No |
0 |
Maximum response time of a service call from all the monitored ones |
MinimumResponseTime |
long |
No |
0 |
Minimum response time of a service call from all the monitored ones |
Threshold |
java.lang.Long |
Yes |
10000 |
Defines the maximum allowed time for a service call to be processed. If this time is exceeded a problem will be generated |
TimeSinceLastReset |
long |
No |
0 |
Total time since the last statistics reset |
Note the attributes related with time statistics are expressed in milliseconds
Monitor Operations
Child MBeans
This section gathers information regarding MBeans that are contained within this monitor
Service operation invocation objects
An instance of a monitored service operation invocation. A service operation call is uniquely identified by the qualified name of the service and method used in the invocation. When the service monitor determines that a service operation call has finished it will record the duration and rollup metrics.
JMX Interface Name: com.ibm.team.server.monitoring.jmx.beans.ServiceMBean
JMX Object Name: team.server.<application public URI context>@<port>:type=Service,name="<service method invocation>"
JMX Object Name Example: team.server./jts@9443:type=Service,name="com.ibm.team.repository.service.internal.ContributorService.fetchContributorByUserId"
It is important to note that a service operation invocation can be result of a user action, an application scheduled task or internal invocations between the different server services. All of these are tracked and monitored.
Attributes
JMX Attribute |
JMX Type |
Is Writeable? |
Default Value |
Description |
AverageResponseTime |
long |
No |
0 |
Average response time for all the monitored invocations of this service operation |
Count |
long |
No |
0 |
Counter of all monitored operations |
Duration |
long |
No |
0 |
Total duration sum of the duration of the individual monitored invocations |
MaximumResponseTime |
long |
No |
0 |
Maximum response time of the monitored service operation calls |
MinimumResponseTime |
long |
No |
0 |
Minimum response time of the monitored service operation calls |
TimeSinceLastReset |
long |
No |
0 |
Total time since the last statistics reset |
Note the attributes related with time statistics are expressed in milliseconds
Operations
Service Problems
When a service call exceeds the monitor defined threshold, a
Problem Service object is created. This object provides information that uniquely identifies the service call that exceeded the threshold. The generated JMX object follows the convention:
JMX Interface Name: com.ibm.team.server.monitoring.jmx.beans.ResourceInstanceMBean
JMX Object Name: team.server.<application public URI context>@<port>:type=Problem Service,name="<service method invocation>",id=ID
JMX Object Name Example: team.server./ccm@9443:type=Problem Service,name="com.ibm.rational.buildforge.buildagent.internal.service.BuildAgentLoopTask.executeTask",id=04d1208b-7bd5-454a-bdd7-c49e75372283
Where
name
matches the one of the Service monitor object of which a execution originated this problem. A different problem object instance (with different ID) will be created each time the service method call exceeds the threshold.
Attributes
Following are the attributes exposed by the Problem Service objects
JMX Attribute |
JMX Type |
Is Writeable? |
Default Value |
Description |
Duration |
long |
No |
0 |
Total duration of the operation. This value will be greater than the defined threshold |
FinishDate |
Date |
No |
Finish Date/time |
Date/time the operation finished |
Identifier |
String |
No |
UUID |
Object UUID |
Links |
TabularType (Open Type) |
No |
|
Links to associated performance information. This attribute is not currently used in this release |
Name |
String |
No |
Object name |
The service method call. It matches the value of the name entry of the JMX Object name |
RDF |
String |
No |
|
RDF Representation of this object. This attribute is not currently used in this release |
StartDate |
Date |
No |
Start Date/time |
Date/time at which the operation started |
ThreadID |
long |
No |
|
The ID of the thread that executed the call |
ThreadName |
String |
No |
|
Name of the thread which performed the method invocation. It provides context information of the root operation |
ThreadTraceRDF |
String |
No |
|
The trace of other monitored object invocations along with their associated metrics as RDF. This attribute is not currently used in this release |
URI |
String |
No |
|
This attribute is not currently used in this release |
Operations
External links: