Monitoring your Rational solution for Collaborative Lifecycle Management servers in your environment
Last updated: August 21, 2012
Build basis: Rational solution for Collaboritve Lifecycle Managment 4.0
We are keenly aware of the demands upon IT operations teams to ensure CLM services are available 24/7. This is especially important for geographically diverse development teams which include a variety of builds that run round the clock. Needless to say that our customers are extremely happy with both the performance and uptime provided by the CLM Operations Team over these years.
I have been asked many times by internal and external customers how we keep an eye on the services. How do we know if the servers are performing optimally? How does an administrator know if the service ever failed and when to take corrective measures?
The answer is surprisingly simple. We use a light-weight HTTP client using Perl to detect the health of the CLM server. This work is greatly simplified by using the REST api and JSON responses provided out-of-the-box by the CLM software.
We measure the response time of each of these round-trip HTTP calls at the client side and determine if the service is providing optimal response times. In addition, the JSON responses are interpreted to ensure the content received from the server is valid and appropriate.
Now, let us get little dirtier by looking at a sample script’s functionality. The script itself is a Perl script that takes 3 arguments namely, the Jazz Public URI, an Admin username and Admin password.
First, Let us look at how the script can be invoked and some sample output from it.
$ ./CLMMonitor.pl https://clmtest.ibm.com:9443/jts ADMIN ADMIN Connection to https://clmtest.ibm.com:9443/jts completed in 0.75 Seconds. Authentication to https://clmtest.ibm.com:9443/jts completed in 0.87 Seconds. Retrieving Database Status for CLM Server @ https://clmtest.ibm.com:9443/jts is completed in 0.22 Seconds. $
The establishment of a connection and logging into CLM application is a standard process for any programmatic browser framework. So we will skip it.
We will inspect a part of the script used to get the database connectivity status:
$Response = $Browser->get( $JazzURI . "/service/com.ibm.team.repository.service.internal.IServerStatusRestService/databaseStatus");
The above HTTP call to a CLM server with an authenticated session($Browser Object) will return a JSON formatted response. This response is identical to the “Database Status” section of the CLM server’s Admin page. We have some wrappers to the script that will gather the response and if the database status returns a failure, or the round-trip time crosses certain threshold, an SMS will be generated to an on-call administrator for corrective action.
About the author
Hari Vetsa is the lead for the CLM Operations Team in support of Rational’s CLM deployments within IBM.
Copyright © 2012 IBM Corporation