Abstract:
An alarm correlation method with rules and model is disclosed for suppression of alarms which will clear when another alarm clears. The alarm correlation method with rules and model includes a list of objects which alarms may be raised, and a list of correlation rules for each of the objects which associates objects which have correlated alarms, and a method of traversing the lists so that correlated alarms may be suppressed. The alarm correlation method with rules and model is particularly useful for overcoming operator overload due to the presence of multiple correlated alarms.

Description:
FIELD OF THE INVENTION  
       [0001]    The invention relates to generally to alarm correlation in communication networks and is particularly concerned with suppression of correlated alarms so as to simplify alarm cause analysis. 
       BACKGROUND OF THE INVENTION  
       [0002]    The increasing processing power of telecommunications equipment has resulted in an increased volume of data traffic concentrated per unit of equipment. As well, increased equipment density due to enhanced ASICs is resulting in more lines per card, more cards per shelf, and even more shelves per equipment bay. 
         [0003]    Functionality of equipment is provided by both hardware circuitry and software functions. Failures can occur in either of these elements. As well, failures of operation can occur due to faults within the equipment or due to circumstances exterior to the equipment. For example, a component on a circuit board may fail, or an optical fiber may be severed in the field. 
         [0004]    Upon detection of a failure of operation or fault, telecommunications equipment normally produces a short message, known as an alarm message, which indicates that it is experiencing some condition or abnormality. Typically, the alarm message will contain information about the device issuing the alarm, the time of the message, and some description of the abnormal operation. Alarm messages may be considered symptoms of faults and a single fault may result in a large number of alarms. 
         [0005]    Operational problems in networks can be difficult and time consuming to debug because a problem in one place affects many other network objects, and many alarms are raised at the same time 
         [0006]    In the presence of alarms, it is necessary to trace the relationship between the alarms to understand what alarm may be signaling the root cause and which alarms are a consequence of failures entailed by the root cause. 
         [0007]    Alarm association allows the operator to quickly:
       Identify that a problem has occurred   Identify which network objects and services have been affected   Troubleshoot to find the objects closest to the cause       
 
         [0011]    Therefore, it would be desirable to have an error management display system capable of suppressing correlated alarms to simplify the presentation of alarm data for the operator. 
       SUMMARY OF THE INVENTION  
       [0012]    It is an object of the invention to provide a method of alarm correlation. 
         [0013]    According to an aspect of the invention there is provided a method for managing alarms arising on a plurality of objects in telecommunications equipment, the method comprising the steps of: establishing a list of networked alarm relations among the plurality of objects, wherein the list specifies correlated alarms and correlating alarms associations between the objects; establishing a list of correlating alarms; establishing a list of correlated alarms; and and upon a new alarm being raised on an object of the plurality of objects; traversing the list of networked alarm relations in conjunction with the list of correlating alarms and the list of correlated alarms; and assigning the new alarm to one of either the list of correlating alarms or the list of correlated alarms. 
         [0014]    In some embodiments of the invention an object of the plurality of objects may be either a hardware device or a software function. 
         [0015]    Advantageously, the traversing step includes traversing at least one of the set of parent objects, affecting objects, and children objects. 
         [0016]    Further, advantageously the list of networked alarm relations among said plurality of objects further includes a priority attribute. The priority attribute may be used in the assigning step in the event that the new alarm can be correlated by two different alarms 
         [0017]    According to another aspect of the invention there is provided an article of manufacture for use in programming a telecommunications equipment to manage alarms arising on a plurality of objects in the telecommunications equipment, the article of manufacture comprising computer useable media accessible to the telecommunications equipment, wherein the computer useable media includes at least one computer program that is capable of causing the telecommunications equipment to perform the steps of: establishing a list of networked alarm relations among said plurality of objects, wherein said list specifies correlated alarms and correlating alarms associations between said objects; establishing a list of correlating alarms; establishing a list of correlated alarms; and and upon a new alarm being raised on an object of said plurality of objects; traversing said list of networked alarm relations in conjunction with said list of correlating alarms and said list of correlated alarms; and assigning said new alarm to one of either said list of correlating alarms or said list of correlated alarms. 
         [0018]    Note: in the following the description and drawings merely illustrate the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention and are included within its spirit and scope. Furthermore, all examples recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass equivalents thereof. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0019]    The present invention will be further understood from the following detailed description of embodiments of the invention, with reference to the drawings in which: 
           [0020]      FIG. 1  illustrates a set of dependent objects; 
           [0021]      FIG. 2  illustrates a hierarchical depiction of a correlated alarms list in accordance with an embodiment of the present invention; 
           [0022]      FIG. 3  illustrates a flowchart of a method for correlating alarms in accordance with an embodiment of the present invention; and 
           [0023]      FIG. 4  illustrates a flowchart of a method for traversing parent objects in accordance with an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION  
       [0024]    Within the operational environment of telecommunications equipment an object may be defined as a hardware element or a software function. Alarms are raised on objects due to a failure of operation of the object, or due to a fault, for example a performance which is out of the required range of operation for that object. 
         [0025]    Given objects may have other objects which are dependent in operation on the given objects. Referring to  FIG. 1  there may be seen a set of dependent objects, some of which are hardware objects and others of which are software functions. The hardware objects include node  102 , shelf  104 , slot  106 , card  108 , and port  110 . The software objects include Service Access Point (SAP)  112 , site  114 , and service  116 . Due to the functional relation of the objects, faults on one of the objects will necessarily raise alarms on the dependent objects. For example a failure of node  102  will raise a node alarm, but will also raise a card  108  alarm, and potentially a slot  106  alarm, a shelf  104  alarm, and a port  110  alarm. Further, a failure of port  110  may raise a SAP  112  alarm. 
         [0026]    From the viewpoint of the telecommunications equipment operator, it would be useful to see the alarms of importance. This facilitates and expedites troubleshooting of alarms. 
         [0027]    For the purpose of understanding the operation of an embodiment of the invention, the following definition of a correlated alarm is used. A correlated alarm is defined as an alarm that will clear when another alarm, the correlating alarm, is cleared. 
         [0028]    By way of example, if a port  110  fails due to a link being down, and there are 1000 SAPs on that port, the 1000 SAPs will each raise an alarm. The 1000 SAP alarms are correlated alarms, and the port  110  alarm is the correlating alarm. All these alarms appear in the operator&#39;s alarm display window, and make it difficult to notice that the primary alarm is the port. Alarm suppression hides the correlated alarms and shows only the correlating alarms. According to an embodiment of the invention, provisions are made to allow the operator to drill into the correlating alarm to see all the correlated alarms. 
         [0029]    For the purposes of the following description, the correlation manager is the function which performs the alarm correlation and manages display suppression. The correlation manager is typically rendered in software, but in certain embodiments may be implemented in hardware or via Application Specific Integrated Circuits (ASICs). 
         [0030]    Within the telecommunications equipment, alarms themselves are objects. To facilitate alarm suppression, alarm objects possess a correlating alarm field which indicates which alarm the current alarm is correlated under. 
         [0031]    In order to correlate alarms efficiently, the correlation manager maintains the following structures:
       List of correlating alarms   List of correlated alarms for each correlating alarm   List of correlation rules       
 
         [0035]    To build the correlated alarm list for each alarm, the correlation manager performs a recursive traversal of all the alarms correlated under the specified alarm. Referring to  FIG. 2  there may be seen a graphically depicted example of a correlation list illustrating the correlation dependencies of the alarms A 1 , A 2 , A 3 , A 4 , A 5 , and A 6 . 
         [0036]    Correlation rules describe how alarms will be correlated. To do so, correlation rules have the following structure:
       A correlation tag will require a type attribute which will indicate whether this rule is correlating alarms on children (aggregation) or dependant objects (association). It will also include a priority attribute, which will indicate which rule should be used when an alarm can be correlated by two different alarms.   A filter tag will specify a filter which will be evaluated when the alarm is created to determine whether the alarm is a correlating alarm or not.   A “Can Suppress” tag will also be added to the alarm. This will indicate whether a specific alarm should be considered for suppression or not. When not specified, the default value will be yes.       
 
         [0040]    Referring to  FIG. 3  there may be seen a flowchart of a method for correlating alarms in accordance with an embodiment of the present invention. The method commences when a new alarm  300  is raised. 
         [0041]    The next step  302  is to traverse the Parents/Affecting Objects for alarms. At step  304  a test is made as to whether the Parents/Affecting Objects contain a correlating alarm. If there is no correlating alarm, then control passes to step  306  and the alarm is loaded normally. If there is a correlating alarm, then control passes to step  308  and the alarm is determined to be a correlated alarm and is thereby suppressed. 
         [0042]    In either case  306  or  308 , control subsequently passes to step  310  where there is a test for a Correlation Rule for this alarm. If the answer is negative, then the alarm correlation process passes to  312  and Ends. 
         [0043]    If the answer is positive, then there are Children/Depending Objects, and control passes to  314  where they are traversed. A check for whether they contain an alarm occurs at step  316 , and if the answer is negative then the alarm correlation process passes to  312  and Ends. 
         [0044]    If the answer is positive then there is a correlating alarm, at which point control passes to step  318  and the alarm is determined to be a correlated alarm and is thereby suppressed. This concludes the alarm correlation process and control subsequently passes to  312  and Ends. 
         [0045]    Summarizing, alarms are correlated as they are loaded and created. Parents are first traversed to identify if they contain a correlating alarm under which the new alarm could be correlated. If such a correlating alarm is found, the alarm will be suppressed. If no such alarm is found, the affecting objects are traversed to identify correlating alarms, and suppress the alarm if found. 
         [0046]    Then, the correlation rules will be scanned for one matching the alarm name, type, etc. If one is found the current alarm is handled as a correlating alarm. Its children and dependants are scanned to find alarms that can be correlated under the current alarm. 
         [0047]    Traversing parent objects is the most straightforward traversal as each object has at most a single parent. The only conflict that arises is when a parent has several correlating alarms. Those conflicts are resolved by correlating under the alarm with the highest priority. 
         [0048]    Referring to  FIG. 4  there may be seen a flowchart of a method for traversing parent objects in accordance with an embodiment of the present invention. The method commences when a new alarm  400  is raised. 
         [0049]    Control passes to step  302  wherein it is checked if the parent is NULL i.e. no parent exists. If the check confirms that the parent is NULL, control passes to  304  and the process Ends. 
         [0050]    If the check determines that the parent is not NULL, then control passes to step  306  wherein a check is made for the presence of a correlating alarm. If the check is affirmative, then the alarm is suppressed, control passes to  304  and the process Ends. 
         [0051]    If the check does not determine the presence of a correlating alarm then control is routed back to step  302 . This eventuality may occur when the new alarm being processed does not have a NULL parent, but the correlating alarm has not yet been processed. 
         [0052]    Traversing affecting objects is more complex as is equates to traversing a graph. The method used is a depth-first search which stops searching a tree branch when one of the following conditions is met:
       The current node is a leaf   The current node is the starting node (cycle)   The current node contains a correlating alarm       
 
         [0056]    If multiple correlating alarms are found, the one with the highest priority is selected. 
         [0057]    In order to find alarms that should be correlated under the new alarm; a children traversal is required. This is facilitated by a naming convention which denotes children objects as having an portion of their names consisting of their parent&#39;s names. The search is then done by finding all alarmed objects&#39; names which start with the current object&#39;s full name. Once again, this traversal is a depth-first one with the following conditions determining the tree leaves:
       The current node has no children   The current node contains a correlating alarm       
 
         [0060]    In order to find alarms that should be correlated under the new alarm; an affecting object traversal will be required. The affecting object list is already compiled to maintain each object&#39;s status. Once again, this traversal is a depth—first one with the following conditions determining the tree leaves:
       The current node has no affected objects   The current node has been visited   The current node contains a correlating alarm       
 
         [0064]    Once correlated, the alarm is suppressed, while uncorrelated alarms will be unaffected. As a consequence suppressed alarms are no longer visible in the operator&#39;s Alarm Display window (unless the operator has elected to display correlated alarms). 
         [0065]    When a correlating alarm is remedied, the correlated alarms should eventually be cleared since the root cause should be resolved. According to one embodiment, after a preset delay has expired alarms which are not cleared are un-correlated. These alarms are then processed as if they were being raised. As a consequence they may be correlated under a different alarm or simply shown as a normal alarm. 
         [0066]    Accordingly, what has been disclosed is a method and process for correlating alarms raised on objects by specifying rules associating objects and alarms, and then processing alarms as they are raised so as to suppress correlated alarms. 
         [0067]    The net effect is that an equipment operator is presented with an error management display system capable of suppressing correlated alarms to simplify the presentation of alarm data, allowing the operator to see the alarms of importance, and facilitating the expeditious resolution of these alarms. 
         [0068]    Note, in the preceding discussion a person of skill in the art would readily recognize that steps of various above-described methods can be performed by programmed computers. Herein, some embodiments are also intended to cover program storage devices, e.g., digital data storage media, which are machine or computer readable and encode machine-executable or computer-executable programs of instructions, wherein said instructions perform some or all of the steps of said above-described methods. The program storage devices may be, e.g., digital memories, magnetic storage media such as a magnetic disks and magnetic tapes, hard drives, or optically readable digital data storage media. The embodiments are also intended to cover computers programmed to perform said steps of the above-described methods. 
         [0069]    Numerous modifications, variations and adaptations may be made to the embodiment of the invention described above without departing from the scope of the invention, which is defined in the claims.