Abstract:
To achieve out-of-the-box performance management solutions in modern, complex computer environments, a method and an apparatus provide automatic discovery of applications and services resident on a monitored computer system and autonomous configuration of available performance management tools. The method includes inventorying installed applications, performance management tools, and active services. The inventory information is written to an ASCII-format file, and is used to generate performance management tool configuration files. The performance management software is then restarted to engage the new configuration customized to the computing environment.

Description:
TECHNICAL FIELD  
         [0001]    The technical field is software systems designed to monitor performance of a system.  
         BACKGROUND  
         [0002]    Performance of modern computer systems, including networked computer servers, may degrade for a variety of reasons, many of which relate to the use of shared resources including disk bandwidth, memory capacity, and central processing unit (CPU) utilization. Information technology (IT) system administrators track performance of their computer systems to ensure optimum allocation of these and other shared resources. Performance monitoring software provides system administrators with the tools necessary to track system performance and to diagnose problems. The performance monitoring software may provide performance information about a computer system, allow the administrator to examine the status of various services hosted by the computer system, identify and resolve bottlenecks, and tune the system and services for more efficient operation. The performance monitoring software may keep a history of the computer system performance, monitoring performance as a background task, and may send alarms for impending performance problems. Using the performance monitoring software, the administrator can pinpoint trends in computer system service levels, and can use this information to balance workloads to accurately plan for computer system growth.  
           [0003]    Unfortunately, performance management software is typically complex, and takes a long time to master. Furthermore, performance management software commonly suffers from the inability to adapt to differing environments that the software is expected to monitor. Applications are mixed and configured differently on nearly every server, and server consolidation environments often support several disparate applications and services on a single system. Setup and custom configuration of performance tools specific to these different service environments is a burden on the system administrator, but is required to obtain value. Monitoring software that attempts to avoid this startup overhead suffers from the problem of being too generic to be useful in a modern, complex computing environment.  
         SUMMARY  
         [0004]    To achieve out-of-the-box performance management solutions in modern, complex computer environments, a method and an apparatus provide automatic discovery of applications resident and services active on a monitored computer system. The method and apparatus also provide autonomous, automatic configuration of available performance management tools.  
           [0005]    Upon initiation of the method, specific information is obtained from the computer system under analysis. First, a discovery process to produce an inventory of installed applications is initiated. Different computing architectures have different mechanisms for obtaining this inventory information. The method and apparatus use the different mechanisms to produce an inventory of all installed applications.  
           [0006]    Second, an inventory of performance management software is completed. The method and apparatus are flexible enough to provide automatic configuration of different management tools. Thus, the performance management tools present in the computer system must also be determined by a similar process as is used to discover resident applications.  
           [0007]    Third, an inventory of active services is completed. For the purpose of this method, a service is considered an active instantiation of an application. For example, a database application may be installed on the computer system under analysis, and it might be instantiated in three separate instances, or services, to perform different functions. Likewise, some applications may be installed on a computer system yet not be activated. Configuration of performance tools may be dependent both upon the applications installed on the system, and the nature of how they are activated as services at any given time. Architecture-specific queries of active services, represented by running processes, are used to supplement the internal list of applications and flag some or all of them as services that are enabled or active. The automatically derived inventories of applications, performance tools, and active services that result from these first steps may then be written to an ASCII-format file.  
           [0008]    Fourth, the inventories serve as input to a step that uses the awareness of the computing environment to generate configuration files specific to the performance management software present on the computer system. The configuration files include collection parameters, application-specific interfaces, performance thresholds, and alarms applicable to specific tools.  
           [0009]    Fifth, and finally, the performance management software is restarted or reinitialized to engage the new configuration defined by the modified configuration files.  
           [0010]    The method allows completion of the above-described steps without any manual intervention. For example, performance tool installation may invoke this method during the software install process to automatically configure the performance management tools to the computer system environment. If the computing environment changes, the method may be invoked on demand, or scheduled to execute periodically.  
           [0011]    While in an embodiment, the method is entirely automatic; the automatic method may be supplemented manually by amending the output of the first three steps and then starting the process from the fourth step. This manual intervention can be provided without the requirement for manual setup and configuration. 
       
    
    
     DESCRIPTION OF THE DRAWINGS  
       [0012]    The detailed description will refer to the following drawings in which like numerals refer to like items, and in which:  
         [0013]    [0013]FIG. 1 is a block diagram of an apparatus that provides for automatic configuration of performance management tools; and  
         [0014]    [0014]FIG. 2 is a flow chart showing a method for automatic configuration of performance management tools. 
     
    
     DETAILED DESCRIPTION  
       [0015]    [0015]FIG. 1 is a block diagram of an exemplary apparatus that can be used for automatic configuration of performance management tools.  
         [0016]    A computer system  100  environment includes operating or control systems (OS)  101  supplemented by applications  102  resident on storage media  103 , which may include disk or networked storage. The computer system  100  has interfaces that allow specialized programs to discover installed applications. For example, using Windows NT, the OS  101  includes software to query a database of installed applications. This information includes registry information for installed performance management tools as well. On hp-ux, a Software Distributor tool may be used in an analogous fashion to derive an inventory of installed applications. Similar functionality exists in conjunction with all major Operating Systems. To augment this, programs may traverse mounted file systems and directories on disk and network media to determine which programs and applications are available to be executed on the system. When applications are added to the environment, an inventory is updated to reflect the addition. Thus, in an embodiment, a discovery process or module  110  can query a registration database or scan storage media to discover installed applications and to construct an ASCII (human-readable) inventory file  120  listing applications  121 . This same procedure can be executed specifically to add to a performance management tool inventory  122  all of the performance management tools that are installed on the system.  
         [0017]    During system operation, a varying number of installed applications  121  will be active at any one time. Executing applications compose services that are the function of a computer system. Services are composed of one or more processes executing programs specific to a given application. Some applications may be instantiated several different times to perform different services. In any case, computer system environments have interfaces (such as perflib on Windows NT, pstat on hp-ux) allow software to query the execution environment to discover which applications are currently active. Thus, in an embodiment, the discovery process  110  can supplement the inventory file  120  with information regarding active applications, or the current set of services instantiated  123 .  
         [0018]    The inventory file  120  may contain entries for each of the installed applications  121 , the performance management tools  122 , and the active services  123 . Alternatively, the inventory file  120  may include an entry for all applications, and flags may be set to indicate an active application and performance tools. The discovery process  110  functions to maintain the inventory file  120  up-to-date. Thus, a complete inventory file  120  includes all possible services and performance tools in the environment along with information as to which services and tools are active.  
         [0019]    The inventory file  120  thus generated may be edited by a system administrator. This step is allowed because the discovery process  110  may not be comprehensive, and the human-readable nature of the inventory allows for manual intervention based on the administrator&#39;s knowledge. In a current state of the art, system administrators need to manually configure performance tool configuration files directly, sometimes repeatedly and differently for every installed application and service. Allowing the administrator to embed this knowledge into a stable inventory allows for automation of much of this process.  
         [0020]    A software module, or process, executing on the computer system may use the resulting inventories of installed applications  121 , performance tools  122 , and instantiated services  123  to generate configuration files specific to the computing environment. In an embodiment, a file generation process  130  uses the inventory file  120  to generate performance tool configuration files  140  specific to the performance management tools that are present on the system  100 . The configuration files  140  thus generated may include collection parameters  141 , application-specific interfaces  142 , and performance thresholds/alarms  143  applicable to specific performance management tools.  
         [0021]    [0021]FIG. 2 is a flowchart showing one method according to the apparatus shown in FIG. 1. A process  200  is executed on the computer system  100 , and begins at block  205 , when the computer system  100  is started, or at some other time. In block  210 , installed applications  121  are discovered by reading the system registry or by scanning attached storage devices on the computer system  100 . In block  215 , the same or a similar discovery process is used to add all installed performance management tools  122  to the inventory file  120 . In block  220 , the active process environment is examined to augment the inventory file  120  with active service  123  information. In an embodiment, the discovery processes  110  may be executed only periodically as new applications are added to the system  100 , while the active service discovery may be executed on a frequent basis as the mix of running processes change. The augmented inventory file  120  thus created is maintained until updated by a subsequent inventory.  
         [0022]    The inventory file  120 , as an ASCII-format file, is available for viewing by an operator or administrator of the system, and may be printed. In block  225 , the inventory file  120  itself may be edited by the administrator to change or add information relevant to the environment. Manual intervention is not required, however.  
         [0023]    In block  230 , the configuration file generation process  130  uses the inventory file  120  to create configuration files  140  specific to the performance management tools shown in the inventory steps ( 210 ,  215 ,  220 ). The configuration files  140  typically vary depending on particular performance management tool, but may include collection parameters, application-specific interfaces, performance thresholds, and alarms specific to the tool as well as the current operating service environment.  
         [0024]    In block  235 , the performance management software is reinitialized or restarted to engage the new configuration shown in the configuration files  140 . Restarting the performance management software may be accomplished automatically, without intervention of the administrator, or would occur the next time the computer system is restarted. If the computing environment changes (for example, a new application is installed), the entire process can be re-iterated (block  240 ) in order to reflect the changes in the configuration files. If the process does not need to be repeated, the process then ends with block  245 .  
         [0025]    The above-described process is but one method for automatic configuration of performance management tools, and other methods may be used with the system shown in FIG. 1. The method illustrated in FIG. 2 may initiate automatically on start up of the system. The methods may also be initiated on demand by the system administrator, for example, when new hardware devices or application programs are added. The methods may also be initiated periodically to maintain optimum configuration of the performance management tools as the computer system evolves. For example, the methods may be initiated once per week, or more frequently.