Abstract:
Embodiments of the present invention provide a method, system and computer program product for configuration item (CI) status value analysis for multiple performance monitors. In one embodiment of the invention, a multi-CI analysis method can be provided. The method can include weighting different CI status values produced by different performance monitors for a single resource in a monitored computing system and displaying selected ones of the weighted different CI status values according to relevance determined by weight. In one aspect of the embodiment, weighting different CI status values produced by different performance monitors for a single resource in a monitored computing system can include locating the different CI status values for the single resource in a configuration management database (CMDB), identifying the different performance monitors producing the different CI status values in the CMDB and applying weights to the different CI status values according to CI status value characteristics.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to the field of application performance and availability monitoring and more particularly to configuration item status value analysis. 
         [0003]    2. Description of the Related Art 
         [0004]    Decades ago, application performance and availability related mostly to the complexity of an application and the capabilities of its host platform. In view of the simplicity of the relationship between performance and resource availability, enhanced application performance could arise only through more efficient or less complex application coding, or through an enhanced hosting platform including more memory, more caching resources, faster fixed storage, or speedier processing. As a result, until recently, little attention had been paid to the performance of an application as an indicator of anything more than merely an overly complex application, or an underpowered host platform. 
         [0005]    The popularization of more complex, enterprise computing environments has resulted in new efforts to explore the relationship between the state of a host platform and the performance and availability of a hosted application. To further explore the changing states of applications deployed within the enterprise, application performance monitoring systems have been developed whose purpose is to detect an impending state change of a monitored application. In furtherance of its purpose, typical performance monitoring systems can be coupled to monitored applications and can monitor resources which affect the operation of the host platform. Importantly, these resources can include both hardware and software constructs. 
         [0006]    Generally intended for use by network and application administrators, enterprise computing monitoring systems monitor selected elements in the network of components forming the enterprise computing environment. Enterprise computing monitoring systems are traditionally organized in a hierarchical fashion, with sensors distributed throughout the network of components forming the enterprise computing environment. These sensors relay monitored events to aggregation nodes, which in turn can relay the monitored events to a smaller set of aggregation nodes. Monitored events can be interpreted, translated and provided to interacting administrators in order to facilitate the management, performance and availability, of the enterprise computing environment. 
         [0007]    In the modern, complex, heterogeneous enterprises it is often the case that a single resource, also referred to as a configuration item (CI), is known and monitored by more than a single monitoring system or function. This is particularly true when considering the computer system as a composite of individual components or CIs, for example an operating system, a database management system, a network card, disk storage and memory, each of which may be monitored by multiple monitoring systems. Each of the monitoring systems monitoring the CIs typically specializes in monitoring some particular aspect of that CI. 
         [0008]    Notably, the individual monitoring results from all the monitoring systems, each embodied as a CI status, can be useful and important when trying to understand the health or availability of a computing system. However, often it can difficult to understand what information each monitoring system has attempted to convey to the end user in a CI status and how that information can be related to different information for the CI acquired from another concurrently monitoring system. Often the CI status from each of multiple monitoring systems can contradict each other, thus adding to the confusion and difficulty in interpreting and utilizing the information. Current solutions focus on aggregating the multiple CI status values into a single, composite value. 
         [0009]    The aggregation of multiple CI status values tend to result in representing the resource status as the worst status reported by any monitoring system for the CI. In consequence, valuable information associated with individual CI status values for the resource will have been lost through the reconciliation of CI status values for the resource compiled by multiple different monitoring sources. By comparison, other less automated solutions require the end user to visually correlate CI status values from multiple monitoring systems. The latter solutions can be error prone and rely heavily upon the individual in understanding the information conveyed by each monitoring source. 
       BRIEF SUMMARY OF THE INVENTION 
       [0010]    Embodiments of the present invention address deficiencies of the art in respect to multiple and concurrent CI status value analysis and provide a novel and non-obvious method, system and computer program product for CI status value analysis for multiple performance monitors. In one embodiment of the invention, a multi-CI analysis method can be provided. The method can include weighting different CI status values produced by different performance monitors for a single resource in a monitored computing system and displaying selected ones of the weighted different CI status values according to relevance determined by weight. In one aspect of the embodiment, weighting different CI status values produced by different performance monitors for a single resource in a monitored computing system can include locating the different CI status values for the single resource in a configuration management database (CMDB), identifying the different performance monitors producing the different CI status values in the CMDB and applying weights to the different CI status values according to CI status value characteristics. 
         [0011]    Applying the weights to the different CI status values according to CI status value characteristics can include determining a class of CI associated with each of the CI status values, identifying a specialization for each of the performance monitors providing the CI status value, and weighting more heavily CI status values produced by performance monitors specializing in monitoring resources for the class of CI. Alternatively, applying weights to the different CI status values according to CI status value characteristics can include determining a time of observation for the different CI status values and weighting more heavily one of the CI status values in a causal relationship with another of the different CI status values determined from different times of observation for the CI status values. Yet further, applying weights to the different CI status values according to CI status value characteristics can include detecting both aberrant and nominal states reflected by the different CI status values, and weighting more heavily CI status values associated with the aberrant states. Finally, applying weights to the different CI status values according to CI status value characteristics can include identifying conflicting ones of the CI status values and weighting more heavily the conflicting ones of the CI status values. 
         [0012]    In another embodiment of the invention, a performance monitoring data processing system can be provided. The system can include different performance monitors executing in a computer system and monitoring a single resource in a monitored system. The system further can include an analyzer executing in a computer system. The analyzer can include program code enabled to weight different status values produced by the different performance monitors for the single resource. In one aspect of the embodiment, a CMDB storing CI status values for corresponding CIs can be provided where each CI is associated with a different resource in the monitored system. As such, the CIs each can be associated with at least one of a central processing unit (CPU), a network interface, fixed storage and a database management system (DBMS). 
         [0013]    Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0014]    The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein: 
           [0015]      FIG. 1  is a schematic illustration of an enterprise computing system configured for CI status value analysis for multiple performance monitors; and, 
           [0016]      FIG. 2  is a flow chart illustrating a process for CI status value analysis for multiple performance monitors. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0017]    Embodiments of the present invention provide a method, system and computer program product for CI status value analysis for multiple performance monitors. In an embodiment of the present invention, a CI can be classified by type and multiple performance monitors providing a CI status for the CI can be identified. For each identified performance monitor reporting a CI status for the CI, a CI status can be acquired and a time of acquisition of the CI status can be determined. Thereafter, the reported CI status for each identified performance monitor can be weighted according to a reported alert status, whether the identified performance monitor specializes in monitoring the type classified for the CI, whether the reported CI status directly conflicts with that of another performance monitor, or whether the reported CI status for the performance monitor temporally follows a reported CI status for another performance monitor to imply a causal relationship. 
         [0018]    The resulting weights can be provided in a view for an end user and, in one aspect of the embodiment, the most heavily weighted CI status for a particular one of the performance monitors can be considered the mostly likely CI status experienced by an end user. In this way, the CI status information embodied by a single CI value produced by a single performance monitor need not be lost when aggregating multiple CI values from multiple different performance monitors into a composite value. In further illustration,  FIG. 1  is a schematic illustration of an enterprise computing system configured for CI status value analysis for multiple performance monitors. 
         [0019]    As shown in  FIG. 1 , a host platform  110  can support a performance monitoring system  150  including multiple different performance monitors  160  monitoring different resources  170  for a computing platform  180  in a computing system  130 . The host platform  110  can be coupled to the computing system  130  over computer communications network  120  such that the individual performance monitors  160  can monitor the operation and performance of the different respective resources  170  remotely. The individual performance monitors  160  in turn can store status values  190  for different ones of the resources in a CMDB  170  in association with different CIs corresponding to individual ones of the resources  170  in the computing system  130 . An individual performance monitor  160  can monitor and provide status values from multiple CIs, potentially overlapping with other performance monitors for the same CI. 
         [0020]    Notably, a multi-CI analyzer  200  operating in computer  140  can be coupled to the monitoring system  150  through host platform  110  via computer communications network  120 . The multi-CI analyzer  200  can include program code enabled to access the CMDB  170  to identify different stored CI values  190  for corresponding resources  170 . The program code of the multi-CI analyzer  200  further can be enabled to identify the different performance monitors  160  associated with different CIs in the CMDB  170  for the different resources  170  in the computing system  130 . Finally, the program code of the multi-CI analyzer  200  can be enabled to store a time value for each of the CI values  190  in the CMDB  170  indicating when the individual one of the CI values  190  had been observed by the different associated ones of the performance monitors  160  for the monitoring system  150 . 
         [0021]    In accordance with an embodiment of the present invention, an individual one of the CI status values  190  for a selected one of the resources  170  from one of the performance monitors  160  can be compared to individual ones of the CI status values  190  for the selected one of the resources  170  from others of the performance monitors  160 . The CI status values  190  for the selected one of the resources  170  can be weighted against one another according to a number of factors. Those factors can include whether or not a particular one of the performance monitors  160  specializes in monitoring a corresponding one of the resources  170  for an associate one of CI status values  190 . Those factors also can include the duration of time during which a given one of the performance monitors  160  has reported a non-green status for the corresponding one of the resources  170 . 
         [0022]    Other factors for weighting the CI status values  190  can include a determination of whether any one of the CI status values  190  reported by one of the performance monitors  160  directly counteracts or otherwise cancels another of the CI status values  190  reported by another of the performance monitors  160 . Finally, another factor for weighting the CI status values  190  can include a timing of detecting one of the CI status values  190  for a given one of the resources  170  relative to a timing of detecting another of the CI status values  190  for the given one of the resources  170  in order to determine a causative relationship between the two ones of the CI status values  190 . 
         [0023]    Utilizing the weighted factors, a single one of the CI status values  190  for a corresponding single one of the resources  170  can be viewed as most important for viewing individually aside from a composition of the CI status values  190  for the single one of the resources  170 . For instance, the most heavily weighted one of the CI status values  190  can be viewed as the most important. In any event, one or more of the CI status values  190  for the single one of the resources  170  can be rendered for viewing by an operator in the computer  140  in addition to a composition of the CI status values  190  for the single one of the resources  170 . 
         [0024]    In yet further illustration,  FIG. 2  is a flow chart illustrating a process for CI status value analysis for multiple performance monitors. Beginning in block  210 , the multi-CI analyzer can connect to a CMDB for monitored resources in a monitored computing system. In block  220 , a first CI can be selected in the CMDB and the selected CI can be classified according to resource type, such as network interface, database server, central processing unit (CPU), etc. Thereafter, in block  240  a list of performance monitors monitoring the CI can be acquired, for instance by querying the CMDB. Subsequently, in block  250  a first performance monitor can be selected for processing. In this regard, a CI status value for the CI from the performance monitor can be retrieved from the CMDB along with a time of observation for the CI status value. 
         [0025]    In decision block  270 , if additional monitors remain to be processed, the process can repeat through block  250  for a next selected monitor. When no further monitors remain to be processed, in decision block  280  it can be determined whether or not any additional CIs in the CMDB remain to be processed. If so, the process can repeat through block  220 . Otherwise, the process can continue through block  290 . In block  290 , the CI status values for a given CI in the CMDB can be weighted according to a number of factors, including the classification of the CI in respect to the type of performance monitor and its specialization towards a given class of monitored resource. The factors further can include whether or not an observed CI status is nominal or aberrant, and whether two different observed CI status values counteract one another. Finally, the timing of observed CI status values can be used in weighting the CI status values in respect to a perceived causal relationship arising from timing data for the CI status values. 
         [0026]    In block  300 , one or more of the individual CI status values for a CI in the CMDB can be selected for display in addition to or in lieu of a composition of the CI status values. The selected individual CI status values can be selected and arranged according to the different weights with the most telling of CI status values being emphasized. Finally, in block  310  a view can be rendered with the selected individual CI status values along with user interface controls to re-render the CI status values according to a different exclusion or sorting filter. 
         [0027]    Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. 
         [0028]    For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. 
         [0029]    A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.