Open APIs

 View Only
  • 1.  Alarm Management Query

    Posted Apr 15, 2020 09:15
    Hi,

    Good day! I have a few queries with regards to alarm management API

    For the alarm management API I see alarmedObject as one of the objects. I assume this is the network element on which the alarm has been raised.

    To gain more information on the affected element, what API needs to be called? Resource API? Where is the indication of the type of object?

    Also for a proactive alarm, what will be the operation? Notification, alarmCreate? Is there any field to indicate if the alarm is proactive or reactive?

    Thank you.


    ------------------------------
    Warm Regards,
    Suman Bagde
    Infosys
    ------------------------------


  • 2.  RE: Alarm Management Query

    Posted Apr 16, 2020 03:58

    On Apr 15, 2020 09:15, Suman Bagde wrote:

    > For the alarm management API I see alarmedObject as one of the objects. I assume this is the network element on which the alarm has been raised.

    The three main entities for an alarm are:
         reportingSystemId (e.g. EMS-1)
         sourceSystemId (e.g. Router-1)
       
     alarmedObject (e.g. Port-4)

    Network elements (NE) may contains thousands of managed objects (MO).

    > To gain more information on the affected element, what API needs to be called? Resource API?

    Yes, the value of alarmedObject should be a reference to an instance of Resource Inventory available with TMF639.

    > Where is the indication of the type of object?

    The attribute alarmedObjectType should provide the managed object class (MOC) of the alarmedObject (e.g. ResourceFunction).

    > Also for a proactive alarm, what will be the operation? Notification, alarmCreate?

    To create an alarm TMF642 supports the POST operation.

    > Is there any field to indicate if the alarm is proactive or reactive?

    The attribute perceivedSeverity may have the value "warning".

    The information describing an alarm can be viewed as starting with alarmType (one of a few enumerated values) and increasing in detail with probableCause, specificProblem, alarmDetails. You should fit your use case into that model.




    ------------------------------
    Vance Shipley
    SigScale
    ------------------------------



  • 3.  RE: Alarm Management Query

    Posted Apr 17, 2020 03:16
    Thanks very much Vance.

    I was wondering if alarmedObjectType should be inside alarmedObject? I see it outside in the specs. 
    If alarm is raised at a root element, where should all the affected nodes be represented. Example all modems affected by the alarm? 

    Alarm probem will not be represented as a Problem object?

    Warm Regards


    ------------------------------
    Suman Bagde
    Infosys
    ------------------------------



  • 4.  RE: Alarm Management Query

    Posted Apr 17, 2020 04:32

    On Apr 17, 2020 03:16, Suman Bagde wrote:

    > I was wondering if alarmedObjectType should be inside alarmedObject? I see it outside in the specs.

    It's a good point, from an Open APIs perspective if alarmedObject contains a Ref it should support @referredType. However in most use cases the alarms were originally created outside an Open APIs context in a network element which has no 'href' knowledge.. A requirement on TMF642 is to transport the information in ITU-T X.773 and 3GPP 32.111-2 which includes Managed Object Class (MOC) which is why we find alarmedObjectType in the Alarm object schema. In common usage the alarmedObject value will only contain 'id' having a value which is a business identifier such as an RDN (3GPP 32.300) (e.g. "SN=1,ME=1,MF=2,MO=3") and the alarm manager receiving the alarm will have to map that to an Open APIs reference to resource inventory.

    > If alarm is raised at a root element, where should all the affected nodes be represented. Example all modems affected by the alarm?

    Properly all effected managed objects should raise an alarm as well. A Root Cause Analysis & Correlation (RCA) function of the alarm manager may raise those alarms autonomically in which case it should populate the correlatedAlarm attribute. A reporting entity may report correlated alarms however that may not be possible such as the case where a link failure has disconnected other NEs and their reporting entities.

    > Alarm probem will not be represented as a Problem object?

    The specificProblem attribute has type string to accommodate the common use cases in the industry, alarmDetails as well.

    You could use polymorphism to create your own more strongly typed schemas if you wish.




    ------------------------------
    Vance Shipley
    SigScale
    ------------------------------



  • 5.  RE: Alarm Management Query

    Posted Apr 17, 2020 04:01

    > For the alarm management API I see alarmedObject as one of the objects. I assume this is the network element on which the alarm has been raised.

    Typically, when we receive an alarm from NE/EMS, we would see:
        sender (who sent the alarm)
        agent(who generated the alarm)
    After we received the alarm, we would replace them with MO or AMO (affected MO) and add more attributes. Should the alarmedObject be the MO or AMO would be my question on this. My experience is that it should be the MO and the AMO would be what this alarm is affecting, such as another resource or a service instance.

    The bigger issue/problem is how to name MO, by device name, IP address, distinguished name, etc.? As we all know, it is impossible to setup a industry wide MO naming standard though distinguished name was kind of standard in ITU side. I personally think it should leave the parties to work out during the integration. So, TMF just specifies it as an octet string.

    > To gain more information on the affected element, what API needs to be called? Resource API? Where is the indication of the type of object?

    I think that there should be a resource API which is different from inventory API because the FM or PM system most likely will have different set of attributes about the element and their attribute values are closer to real-time compare to inventory. For the type of the object, typically it is the MOC (MO class) in the alarm.
    The reason that I would suggest to have Resource API within Alarm Management API or Performance Management API is to avoid complicating FM and PM by mixing Inventory API into them.


    > Also for a proactive alarm, what will be the operation? Notification, alarmCreate? Is there any field to indicate if the alarm is proactive or reactive?
    By "proactive alarm" I assuming you meant something like TCA (threshold crossing alarm). If so, it normally is indicated by alarm name, alarm type, or other alarm attribute. Sorry, I am not so familiar with SID related to alarm type definition but ITU has defined alarm types like these: equipment, communication, service, environmental. Maybe SID can extend it to have more alarm types. For Alarm Management API, I would suggest to add alarm type field so that it is simpler for caller.

    This brings to another topic: for a performance management system, it is most likely to implement and certify Performance Management API. How would users of the API to get the TCA alarms from the PM system through API? We certainly don't want to force PM system to implement Alarm Management API. I think that adding an optional query method similar to the one in Alarm Management API to Performance Management API would be a good choice



    ------------------------------
    Fazhong (David) Deng
    OSSEra
    ------------------------------



  • 6.  RE: Alarm Management Query

    Posted Apr 17, 2020 06:29
    Edited by Vance Shipley Apr 17, 2020 06:30

    Fazhong (David) Deng writes:
    > After we received the alarm, we would replace them with MO or AMO (affected MO) and add more attributes. Should the alarmedObject be the MO or AMO would be my question on this. My experience is that it should be the MO and the AMO would be what this alarm is affecting, such as another resource or a service instance.

    In TMF6642 the alarmedObject attribute represents the managed object which the alarm condition describes (managed object instance (MOI) of X.733). The affectedService attribute is available to provide correlation to an affected Service domain entity. 

    > I think that there should be a resource API which is different from inventory API 

    No! However it is likely that the resource inventory management system (implementing TMF639 Resource Inventory API) used by assurance (FM & PM) is distinct from other inventory managers.

    > For Alarm Management API, I would suggest to add alarm type field

    TMF642 includes the (mandatory) alarmType attribute as an enumerated list conformant with X.733: communicationsAlarm, processingErrorAlarm, environmentalAlarm, qualityOfServiceAlarm, equipmentAlarm, integrityViolation, operationalViolation, physicalViolation, securityService, mechanismViolation, timeDomainViolation.

    > This brings to another topic: for a performance management system

    New versions of TMF628 Performance Management API and TMF649 Performance Threshold API are under active development now.




    ------------------------------
    Vance Shipley
    SigScale
    ------------------------------



  • 7.  RE: Alarm Management Query

    Posted Apr 17, 2020 08:15

    Vance Shipley writes:

    > In TMF6642 the alarmedObject attribute represents the managed object which the alarm condition describes (managed object instance (MOI) of X.733). The affectedService attribute is available to provide correlation to an affected Service domain entity. 

    Great and thanks!

    Eventually, maybe the Alarm Management API might need to be split to resource domain and service domain as they would have very different attributes for the alarms, or make the API cover both.

    > No! However it is likely that the resource inventory management system (implementing TMF639 Resource Inventory API) used by assurance (FM & PM) is distinct from other inventory managers.

    Well, my experience is that the assurance systems have inventory data inside is better. Anyway, let's think about this scenario: umbrella FM using the Alarm Management API of underline NMS systems. If the API comes only with device type and device name/ID, the umbrella FM will have to make Inventory API query to another system therefore requires another system providing the Inventory API. If the Alarm Management API comes with an optional query on resource, it would be much easier for integration purpose.


    > TMF642 includes the (mandatory) alarmType attribute as an enumerated list conformant with X.733: communicationsAlarm, processingErrorAlarm, environmentalAlarm, qualityOfServiceAlarm, equipmentAlarm, integrityViolation, operationalViolation, physicalViolation, securityService, mechanismViolation, timeDomainViolation.

    Great and thanks!


    > New versions of TMF628 Performance Management API and TMF649 Performance Threshold API are under active development now.

    Yes, we are trying to participate in it.