Abstract:
1. A method for monitoring transaction based systems monitoring their system resource and transaction performance data with thresholds on metrics, said method comprising the steps of collecting system resource data and transaction performance data on a period basis and each time a transaction performance metric is passed, triggering the collection of the system resource and storing an identifier correlating the transaction performance data and the system resource data; merging the collected system resource and transaction performance data; calculating the mean value for each system resource or transaction performance metric of merged data; identifying the metrics for which there is a significant difference between mean value obtained with triggering or without triggering; according to the identified metric mean value, calculating new thresholds of system resource metrics to be used for monitoring. The steps of the method are repeated as many times as necessary for a good training of the system monitoring. Alternatively, the method can be applied to a service offering distributed environment wherein the servers collect locally monitoring data, sending it for further processing on a manager server which sends back the new resource monitoring inputs.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention generally relates to system performance, more particularly this invention relates to a method and system for automatically deriving symptom signatures from problems that affect transaction performance.  
       BACKGROUND OF THE INVENTION  
       [0002]     The most important thing when running a business using IT resources is that the system provides the function required to support the business applications at a level of service that renders it efficient. This requires that the transactions are executed in a timely fashion. Typically, when a transaction response time problem occurs, it is experienced by end users first, and IT staff are alerted to the problem after it has already impacted the business. The process of trouble shooting then begins, and the IT resources are examined to discover where the problem lies.  
         [0003]     Sophisticated transaction monitoring tools exist, that alert IT staff in real time as soon as transaction response times exceed pre-defined thresholds. This is a major improvement to the typical (previous) scenario, but these tools are not yet prevalent, and there are implications in using these tools. For instance, applications need to be instrumented to call transaction monitor tools for timing the duration of a transaction, and this instrumentation adds to the pathlength of the transaction itself, and therefore slows down the transaction execution. It would be preferable if degraded response time could be detected without using methods that directly impact the execution of the transaction itself.  
         [0004]     In a commercial business application, when transactions fail to complete, or are extremely slow, there is invariably a problem with one or more of the IT resources that support the business application (e.g. database, file system, server). Problems in the IT resources that result in the degradation of transaction response time are finite and repeatable. Being able to recognize the conditions that result in service degradation by observing the state of the IT resources would allow for a rapid reaction to problem situations without necessitating a widespread deployment of transaction monitoring and avoiding the pathlength overhead that such monitoring implies.  
         [0005]     In the monitoring space of systems management, there are two distinct categories of monitoring: resource monitoring and transaction monitoring. Different techniques are applied to monitor the state and behavior of IT resources that are used to monitor transaction execution performance, and the two disciplines are implemented with different tools and practices. Therefore, although an administrator can have information about the performance of transactions running in the system, and information about how the various IT resources are behaving, it is extremely difficult to put the two together and leverage both sets of data to identify the root cause of observed problems. Thus it is not possible to identify problems that result in poor transaction performance with resource monitoring only.  
         [0006]     When looking for existing methods for improving response time of transactions, one can be found on the Web pages of the Microsoft (Microsoft is a trademark of Microsoft Corporation in certain countries) site at the following address:  
         [0000]     Http://www.microsoft.com/technet/prodtechnol/sscomm/reskit/rkcapmit.mspx  
         [0007]     These pages describe a capacity model for Internet transactions. This method tempts to improve transaction performance by measuring system monitoring parameters to create predictive static curves of resource consumption. Then, transaction response time and throughput are given as input to the model which predicts system resource consumption. If this methods of capacity planning helps in sizing systems for supporting transactions, it does not helps in monitoring, in real time, transaction performances.  
       SUMMARY OF THE INVENTION  
       [0008]     It is therefore an object of the present invention to provide a transaction monitoring method and system automatically guiding the operator to react on system resources in real time.  
         [0009]     It is a second object of the present invention to have a transaction monitoring method and system which does not create intrusive code slowing down the transaction.  
         [0010]     These objects are achieved, according to claim  1 , with a method for monitoring transaction based systems monitoring their system resource and transaction performance data with thresholds on metrics, said method comprising the steps of:  
         [0011]     collecting system resource data and transaction performance data on a period basis and each time a transaction performance metric is passed, triggering the collection of the system resource and storing an identifier correlating the transaction performance data and the system resource data;  
         [0012]     merging the collected system resource and transaction performance data;  
         [0013]     calculating the mean value for each system resource or transaction performance metric of merged data;  
         [0014]     identifying the metrics for which there is a significant difference between mean value obtained with triggering or without triggering;  
         [0015]     according to the identified metric mean value, calculating new thresholds of system resource metrics to be used for monitoring.  
         [0016]     These objects are also reached, according to claim  2 , with the method of claim  1  further comprising the step of:  
         [0017]     using the calculated threshold for system monitoring and,  
         [0018]     repeating all the steps of the method as many times as necessary until the monitoring of system is satisfying.  
         [0019]     These objects are also achieved, according to claim  3 , with a service offering method for monitoring from a manager server transaction based servers able to monitor locally their system resource and transaction performance with thresholds on metrics, said system comprising:  
         [0020]     locally installing on managed servers the system resource data and transaction performance data monitoring tool;  
         [0021]     locally collecting on managed servers the system resource data and transaction performance data on a period basis and each time a transaction performance metric is passed, triggering the collection of the system resource and storing an identifier correlating the transaction performance data and the system resource data;  
         [0022]     sending data from the managed servers to the manager server;  
         [0023]     merging on the manager server the collected system resource and transaction performance data;  
         [0024]     calculating on the manager server the mean value for each system resource or transaction performance metric of merged data;  
         [0025]     identifying on the manager server the metrics for which there is a significant difference between mean value obtained with triggering or without triggering;  
         [0026]     according to the identified metric mean value, calculating on the manager server new thresholds of system resource metrics to be used for monitoring;  
         [0027]     sending new thresholds of system resource metrics to the managed servers.  
         [0028]     These objects are achieved, according to claim  4 , with the method of claim  3  further comprising the step of:  
         [0029]     using locally on the managed servers the calculated threshold for system monitoring;  
         [0030]     repeating all the steps of the method starting from the collecting step as many times as necessary until the monitoring of system resource is satisfying; and, 
        locally un-installing on managed servers the transaction performance data monitoring tool.        
 
         [0032]     These objects are achieved, according to claim  5 , with a computer program product comprising programming code instructions for executing the steps of the method according to anyone of claim  1  or  2  when said program is executed on a computer.  
         [0033]     These objects are achieved, according to claim  6 , with a system comprising means adapted for carrying out the method according to anyone of claim  1  or  2 .  
         [0034]     This invention leverages the capabilities of both transaction and resource monitoring, and combines information from both sources in a relevant context to relate resource behavior to transaction performance. In particular, it takes a snapshot of resource behavior at the precise moments in which poor transaction performance is observed, in order to highlight what the resources are doing when things are working poorly and to allow a very quick determination of the areas where the root cause of the performance problem lies. Specifically, it allows for transaction monitoring problems to be expressed in terms of IT resource behavior, enabling for the detection of conditions that result in poor transaction performance even in systems where no transaction monitor is deployed.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0035]      FIG. 1  illustrates the overview of the computing system for operating the method according to the preferred embodiment;  
         [0036]      FIG. 2  illustrates the TP and RM database merging, one aspect of the method of the preferred embodiment;  
         [0037]      FIG. 3  shows the measurement results as stored in the Monitoring Database when TP and RM databases are merged;  
         [0038]      FIG. 4  shows two incomplete measurements in measurement results of the Monitoring Database if the Triggering with Correlator of the method of the preferred embodiment is not used;  
         [0039]      FIG. 5  illustrates the Triggering with Correlator function from the TP to the RM according to the method of the preferred embodiment;  
         [0040]      FIG. 6  shows the measurement results as stored in the Monitoring Database when TP and RM databases are merged and when the Triggering with Correlator is used according to the method of the preferred embodiment;  
         [0041]      FIG. 7  shows the measurement results as stored in the Monitoring Database according to the preferred embodiment from which are extracted the problem signatures;  
         [0042]      FIG. 8  is the general flow chart of the method according to the preferred embodiment;  
         [0043]      FIG. 9  illustrates a system environment for operating the method of the preferred embodiment during the training period;  
         [0044]      FIG. 10  illustrates a system environment for operating the method of the preferred embodiment in production mode;  
         [0045]      FIG. 11  is the general flow chart of the method of the preferred embodiment when implemented as a service offering.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0046]      FIG. 1  illustrates the environment of the method of the invention according to the preferred embodiment. A main system ( 100 ) is in connection to servers ( 155 ,  125 ,  135 ,  145 ) which can form a Local Area Network ( 125 ,  135 ,  145 ) through a network ( 115 ). The Main system monitors the system resources of itself and the transaction performance as a central point for the servers. In the preferred embodiment the software tools installed on the Main System IBM Tivoli Monitor (ITM) ( 120 ) and the IBM Tivoli Transaction Performance Monitor ( 130 ), to respectively monitor the Information Technology (IT) system resources and the transaction performance. It is noted that any other tool for monitoring system resources (also called RM or System Resource Monitor or Resource Monitor) or for measuring transaction performance can be used for implementing the invention. The Signature Builder ( 110 ) software layer also operating on the Main System includes the new functions of the preferred embodiment of the invention. An operator console is connected to the main system for manual monitoring operations.  
         [0047]      FIG. 2  illustrates the TP and RM database merging, one aspect of the method of the preferred embodiment.  FIG. 2  shows a combined transaction performance ( 200 ) and resource monitor ( 220 ). The Transaction Performance Monitor ( 200 ) which could be the IBM Tivoli Monitor of  FIG. 1  ( 130 ) is gathering transaction response times by one of the many methods used by TP products today. The IT Resource Monitor which could be the IBM Tivoli Monitor of  FIG. 1  ( 120 ) is gathering metrics related to the availability and performance of IT resources using one of the many methods used by resource monitoring products today. The two entities are independently writing their data to a shared database ( 230 ). Data is being written on a periodic basis, for the sake of this example we will assume a monitoring cycle of 60 seconds.  
         [0048]      FIG. 3  shows the measurement results as stored in the Monitoring Database when TP and RM databases are merged. In  FIG. 3  erratic transaction performance is being observed, but as the IT Resource Monitor is collecting data on 60 second cycles, it is pure chance if resource metrics are collected at the same time as the transaction problems are being observed. Merging the information collected by the two entities may allow for a report that looks something like the following example. The example is deliberately oversimplified, and there are very few metrics shown. The report shown is also unrealistic, as it assumes time synchronization of the transaction performance and IT resource monitor data collection. In fact, today this is not achieved by any system but is added by the method of the preferred embodiment. For the purposes of clarity in the example however, synchronization is assumed.  
         [0049]      FIG. 4  shows two incomplete measurements in measurement results of the Monitoring Database if the Triggering with Correlator of the method of the preferred embodiment is not used. As the transaction performance problems did not occur at a data collection point, there is no trace of any problem whatsoever in this report. It is noted that the transaction performance monitor may write records when a poor performance is observed, but without the corresponding resource data metrics, there is no indication of what is causing the problem. The measurement result report of  FIG. 4  shows this scenario.  
         [0050]     We see here that two problems have been observed, but as we have no resource metrics we are unable to draw any conclusions about what is responsible for the slow transaction performance.  
         [0051]      FIG. 5  illustrates the Triggering with Correlator function from the TP to the RM according to the method of the preferred embodiment. The solution of the preferred embodiment adds the collaboration of the transaction performance and the IT resource monitoring entities to take a full snapshot of the situation at the moment in which a problem is observed.  
         [0052]     In  FIG. 5 , the two monitoring entities are independently monitoring their domain of expertise, and are independently writing data to the shared database. When the transaction performance monitor observes a problem (response time exceeds a threshold), it triggers the IT resource monitor to collect data outside of its normal monitoring cycle. It also passes a correlator to the resource monitor to ensure that the transaction and the resource data can be pieced together, ensuring time synchronization. Thus with the method of the preferred embodiment the resource metrics that were missing from the previous report can be captured.  
         [0053]     The method of the preferred embodiment adds the collaboration of the transaction performance and the IT resource monitoring entities to take a full snapshot of the situation at the moment in which a problem is observed. The two monitoring entities are independently monitoring their domain of expertise, and are independently writing data to the database (note that this database can be physically shared, or there can be two separate databases, one for transaction data and one for resource data, with the data being merged as a later step). When the transaction performance monitor observes a problem (response time exceeds a threshold), it triggers the IT resource monitor to collect data outside of its normal monitoring cycle. It also passes a correlator to the resource monitor to ensure that the transaction and the resource data can be pieced together, ensuring time synchronization.  
         [0054]     For this triggering to work, the Resource Monitor must expose an interface to allow an external process to trigger the collection of data. This interface will expect a parameter in input, in order to have a correlator that enables the merging of the separate data records. The correlator is a unique identifier that represents the trigger condition, and is generated by the transaction monitor. In the simplest case, it can be an incrementing counter.  
         [0055]     A complete measurement result report might look like as illustrated in  FIG. 6 .  FIG. 6  shows the measurement results as stored in the Monitoring Database ( 230 ) when TP and RM databases are merged and when the Triggering with Correlator is used according to the method of the preferred embodiment.  
         [0056]     Here we can see that when the transaction response time increases beyond acceptable levels, the amount of available memory is drastically reduced from the normal value when transactions are performing acceptably. We can also see that the CPU usage is normal, and therefore that CPU usage is not the cause of the problem but that low memory availability probably is. Being able to gather all of the relevant data at the right moment and being able to correlate the data from the different sources is key to identifying root causes of performance problems and is possible through the collaboration of the two monitoring components.  
         [0057]     The following method is used to automatically determine which metric values are symptoms of a problem that adversely affects response time.  
         [0058]     A record is produced for each collection interval. Each record contains the following information: 
        a timestamp     a list of key-value pairs, each representing a metric type and its observed value in that interval     a correlator (will be null unless the collection was triggered by the Transaction Performance Monitor)        
 
         [0062]     The mean value of each metric contained in records that have a non-null correlator value is calculated. Similarly, the mean value of each metric contained in records that have a null correlator value is calculated. The two are compared. If there is little difference between values of a metrics observed in exception conditions and in normal conditions then it is clear that the value of that particular metric is not a symptom of a problem that affects transaction response time. If there is a notable difference in a metric value in the two conditions, then it is probable that the metric can be used as a symptom of the problem that is slowing the response.  
         [0063]     The above described method can be used to build a ‘problem signature’ that represents the state of a system when it is experiencing response time degradation, in terms of resource metrics and values. This is extremely useful, as then an IT Resource Monitor can detect situations that are likely causing response time problems, even if a transaction monitor is not installed and active on the system. Additionally, as transaction monitoring adds instructions into the transaction pathlengths, monitoring transaction response times implicitly slow down the transaction (albeit to a minor degree in well-implemented monitors) but detecting transaction response time problems without instrumenting the transaction path does not add any pathlength at all.  
         [0064]     The problem signature will contain the metrics that show a notable difference in value between normal and exception states, and the values that they exhibit when in exception state. If the resource monitor detects that all of the metrics are exhibiting values that match their exception state levels, then it will report that the system is probably suffering degraded transaction response times. The values associated with each metric will not be the mean value calculated earlier. If that is used then, by definition, only half of the ‘problem states’ for an individual metric will be recognized, and even fewer of the overall problem signature. A better approach is to use a value midway between the mean for normal operating states and the mean for exception states, or some other point on the continuum between the two mean values. The exact point on that continuum is configurable but in the preferred embodiment is based on standard deviations from the mean values in exception states.  
         [0065]     The example used in the figures described sooner in the document shows a single transaction executing on a single system where few performance metrics are collected. This is an extremely simple case. The method of the preferred embodiment applies also to business transactions that span multiple systems that are comprised of many sub-transactions.  
         [0066]     A web user may invoke an operation that spawns sub-transactions on a web server, on a application server and on a database, for example. As the transaction monitor can tie together the sub-transactions through the use of a correlator, the same correlator can be used to relate resource monitor data on each individual system to the sub-transactions, and therefore also to the overall business transaction. Thus the method of the preferred embodiment can snapshot the resource behavior of all of the resources that support a business transaction across many systems, and highlight the cause of problems in complex situations.  
         [0067]     An extension to the exceptional triggering of IT resource monitoring is to use the TP trigger mechanism to always trigger resource data collection in order that the correlator can always be passed to allow for the accurate join of the data from the respective components. This also has the benefit that the resource monitor can be instructed to collect the resource metrics as soon as the transaction monitor observes the start of a transaction. This means that the metric values accurately reflect the situation at the time that the transaction is being executed. In the previously described method, the metrics are collected after the transaction monitor has noticed a slow response time (i.e. after the transaction has completed). In most cases the short delay in gathering resource metrics will not affect the validity for the data, but in very dynamic environments the situation may change rapidly, and even the smallest of delays could render the pattern identification difficult.  
         [0068]      FIG. 7  shows the measurement results as stored in the Monitoring Database ( 230 ) according to the preferred embodiment from which are extracted the problem signatures. The following example shows how the metrics whose values do not differ much between exception and non-exception state can be easily identified. In this case, metrics A, C and D have make up the problem signature whereas metric B and E do not provide any useful information regarding this problem.  
         [0069]      FIG. 8  is the general flow chart of the method according to the preferred embodiment. The TP code ( 200 ) is installed ( 800 ) on the Main System on which already operates the IT resource Monitor ( 220 ) and signature builder ( 110 ) for monitoring the servers. Then, TP and RM data are collected ( 810 ) from monitored servers. The collected data are merged ( 820 ) in the Monitoring database. The Correlator contained in both the TP and RM records are used to correlate the related information. For each metric, the mean value is calculated ( 830 ). The significant metrics are identified. Metrics that are consistently different in ‘normal’ and ‘exception’ records are identified because they contribute to the problem signature. For each metric the threshold value is computed ( 850 ). The ‘best’ value is calculated using an arbitrarily algorithm or, alternatively, by allowing customer selection through the operator console. According to the preferred embodiment, a resource model that encapsulates problem signature is built ( 850 ). The Resource Model concept as described in this disclosure is a concept already applied in System Resource Monitors such as IBM Tivoli Monitoring (ITM). A Resource Model is a machine-readable package that describes the conditions that identify a particular situation. In the case of ITM, a simple RM contains an executable script that runs within ITM to collect the data (metrics) that is required to determine whether or not the system is in a state that matches the situation being monitored for, a number of thresholds against which to compare the metric values, and some Boolean logic that combines the results of the comparisons to identify combinations that represent the situation being monitored for. ITM RMs can execute more complicated logic, but for the purposes of this method a Resource Model represents a machine-readable package that is consumed by System Resource Monitor and which enables it to identify a particular system situation.  
         [0070]     The resource model is then deployed ( 870 ) to the managed servers. If a longer period of training is needed to identify problems, the data is collected again and the same loop is performed. If the user has no more need of this service, this is the end of the method. Training can be carried out for a certain period of time and then (answer Yes to test  880 ), the TP code is removed ( 885 ) and the signatures produced are used by the resource monitoring tool. Alternatively (answer No to test  880 ), training can be ongoing and the signatures are continually updated with recent data. This latter approach is appropriate if a TP agent can be left active on the system.  
         [0071]      FIG. 9  illustrates a system environment for operating the method of the preferred embodiment during the training period. This  FIG. 9  shows the TP and RM agents collecting data on independent databases ( 940 ,  930 ,  920 ) and sending it to their respective management server components. In this configuration, both agents run on all managed servers until the training period is over. Once the records are persisted in the database, the new logic merges the records in the Monitoring database ( 230 ) and builds the signatures. The signatures will be deployed to the RM agents once the training period is over.  
         [0072]      FIG. 10  illustrates a system environment for operating the method of the preferred embodiment in production mode. This  FIG. 10  shows the TP agent running on only one managed server. This configuration is appropriate where all management servers process the same transactions and are very similar in all respects (they form a cluster of a HTTP server). The ‘training’ can be ongoing with the training overhead limited to a single server. Even though the signatures are being built from the information collected on only one server, the servers are so similar that the signatures produced are applicable to all.  
         [0073]     The invention may be implemented as a service offering. The use of resource monitoring tools is very diffuse, and most enterprise customers will be using one to do traditional resource health/availability monitoring. The use of transaction monitoring tools is much less diffuse, even though the performance of transactions directly impacts the end-user and can directly affect the business being conducted. A services offering could be the production of resource monitoring signatures that will detect situations of degraded response time without requiring additional software to be purchased by the customer. These signatures are tuned to the customer&#39;s systems, as they would be produced from data collected during a training period in the customer&#39;s environment.  
         [0074]     The services team would install a transaction monitor server in the customer&#39;s system, or bring one pre-loaded on a services team-owned system, install a TP agent on the customer&#39;s managed servers, and initiate the collection of data. After enough data has been collected, the services team would run the analysis code and build the signatures that would then be delivered to the customer for deployment to the resource monitor agent.  
         [0075]      FIG. 11  is the general flow chart of the method of the preferred embodiment when implemented as a service offering. The TP agent are first installed ( 1100 ) on the servers to be monitored. Then, TP and RM data are collected ( 1110 ) from monitored servers. The data are then sent ( 1120 ) by the agents to the Management server. The following steps ( 1130 ) are performed in the Management server. The data from TP and RM agents are merged ( 1115 ) in the Monitoring database. The Correlator contained in both the TP and RM records are used to correlate the related information. For each metric, the mean value is calculated ( 1125 ). The significant metrics are identified ( 1135 ). Metrics that are consistently different in ‘normal’ and ‘exception’ records are identified because they contribute to the problem signature. For each metric the threshold value is computed ( 1145 ). The ‘best’ value is calculated using an arbitrarily algorithm or, alternatively, by allowing customer selection. A resource model that encapsulates problem signature is built ( 1155 ). The resource model is then deployed to the customers ( 1130 ). If the user of the web service desires going on the period of training to identify problems, the data is collected again and the same loop is performed. If the user has no more need of this service, this is the end of the method. Training can be carried out for a certain period of time and then the TP agent is removed ( 1140 ) the monitoring method ends ( 1150 ) and the signatures produced are used by the resource monitoring agent. Alternatively, training can be ongoing and the signatures are continually updated with recent data. This latter approach is appropriate if a TP agent can be left active on a subset of managed servers.