Class Alarm
This class is used to represent an alarm instance of an entry in
/al:alarms/alarm-list/alarm
list.
New alarm objects can be created and submitted to NCS using the
AlarmSink.submitAlarm(Alarm)
methods.
Instances of this class could also be returned from
AlarmSource.pollAlarm(int,TimeUnit)
,
AlarmSource.takeAlarm()
.
When submitting a new alarm to NCS, NCS matches the new alarm against the existing Alarms in the alarm list. If the new Alarm matches an entry in the alarm list, that entry is simply updated with the new information provided. The full history of alarms submitted for the same event is kept and can be inspected through the NCS interfaces.
Therefore it is a desired pattern to submit alarms, even though it already exist in NCS.
A unique Alarm
instance is the combination of the following:
Managed Device -
ManagedDevice
This is the device on which the alarm started. It may have come as an event from the device, or through detection on the manager side. The YANG type is a string.Managed Object -
ManagedObject
This is a reference to the 'alarming object' that caused the alarm to be raised. In YANG it can be an instance-identifier, an object-identifier or a string.Alarm type -
ConfIdentityRef
The Alarm type is a YANG identityref. I.e. a reference to a YANG identity. These are extensible and defined in the YANG files. It is recommended to have very specific types as possible, and if it is not possible, use also Specific Problem. The motivation is that as far as possible avoid surprises for the operator with alarms that are not defined beforehand.Specific Problem -
ConfBuf
This is used when the 'Alarm type' cannot uniquely identify the problem. It is recommended to specify the alarm in a presentable text for the user here.
The Managed Device
, Managed object
Alarm Type
and Specific Problem
constitutes a AlarmId
.
There are other various information that an alarm has.
Perceived Severity -
PerceivedSeverity
This is the typical classification of how severe the problem is from the device's or objects point of view.Impacted Objects -
ManagedObject
In NCS it is possible to correlate the ManagedObject that caused the alarm with ManagedObjects in Services using the alarming object. These are called Impacted Objects. It is up to the implementor to decide if impacted objects shall be used and how deep they should dig in the structure to claim relations. From NCS 2.3 a "Backpointer" attribute is available on objects that have been set by services. This can be used here to determine Impacted Objects.Related Alarms -
AlarmId
Other alarms caused by this alarm, or with some other relation to this alarm can be listed here. The YANG Alarm model uses "device", "type", and "managed-object" as indexing keys for alarms. Thus AlarmId contains these and provide a reference to the YANG list entry.Root cause objects -
ManagedObject
Objects that are candidates for raising the alarm. This is different from the "Managed Object" parameter which only indicates the object that raised the alarm. If the raising object is in a service, it may have raised the alarm based on the fact that interface eth0 on device c0 had to high packet loss. 'eth0' on 'c0' should then be presented in this list of possible candidates.
The instance of this class is usually submitted in the
AlarmSink.submitAlarm(Alarm)
method to store the alarm representation in NCS.
It is also the returned from:
AlarmSource.takeAlarm()
on the consumer side
-
Constructor Summary
ConstructorDescriptionAlarm
(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, ConfBuf specificProblem, PerceivedSeverity severity, boolean isCleared, String alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Deprecated.Not for public use, The isCleared flag is intended to be set by NCS and not by the constructor This method is expected to be retained only as a package private method.Alarm
(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, ConfBuf specificProblem, PerceivedSeverity severity, ConfBuf alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Creates an alarmAlarm
(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, PerceivedSeverity severity, boolean isCleared, String alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Deprecated.Not for public use, The isCleared flag is intended to be set by NCS and not by the constructor This method is expected to be retained only as a package private method.Alarm
(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, PerceivedSeverity severity, ConfBuf alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Creates an alarm -
Method Summary
Modifier and TypeMethodDescriptionboolean
A unique Alarm instance is the combination ofManagedDevice
,ManagedObject
, (alarmtype)ConfIdentityRef
and (specific problem)ConfBuf
Deprecated.UsealarmText
int
hashCode()
boolean
Returntrue
if this alarm has been cleared by the underlying resource.boolean
static Alarm
toString()
-
Constructor Details
-
Alarm
@Deprecated public Alarm(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, ConfBuf specificProblem, PerceivedSeverity severity, boolean isCleared, String alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Deprecated.Not for public use, The isCleared flag is intended to be set by NCS and not by the constructor This method is expected to be retained only as a package private method. Replaced byAlarm(ManagedDevice, ManagedObject, ConfIdentityRef, ConfBuf, PerceivedSeverity, ConfBuf, List, List, List, ConfDatetime, Attribute...)
-
Alarm
public Alarm(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, ConfBuf specificProblem, PerceivedSeverity severity, ConfBuf alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Creates an alarm- Parameters:
managedDevice
- The managed device for which this alarm is associated with, plain string which identifies the device (usually the key string in /ncs:devices/device{dev1}). I.e. dev1managedObject
- The managed object for which this alarm is associated with. Also referred to as the "Alarming Object". This may not be the same as the rootCause object, which is set in the rootCauseObjects parameter. If an NCS Service generates an alarm based on an error state in a device used by this service, the managedObject is the service Id and the object on the device the rootCauseObjects.alarmType
- The AlarmType this alarm is associated with. This is a YANG identity. Alarm types are defined by the YANG developer and should be designed to be as specific as possible.specificProblem
- If the AlarmType isn't enough to describe the Alarm, this field can be used in combination. Keep in mind that when dynamically adding a specific problem, there is no way for the operator to know in beforehand which alarms that can be raised on the network.severity
- What state this alarm is in. Cleared, Indeterminate, Minor, Warning, Major, CriticalimpactedObjects
- A list of ManagedObjects that may no longer function due to this alarm. Typically these point to NCS Services that are dependent on the objects on the device that reported the problem. In NCS 2.3 and later there is a backpointer attribute available on objects in the device tree that has been created by a Service. These backpointers are instance reference pointer that should be used as impactedObjects.relatedAlarms
- References to other alarms that have been generated as a consequence of this alarm, or that has a relation to this alarm.rootCauseObjects
- ManagedObjects that are likely to be the root cause of this alarm. This is different from the "alarming object". See managedObject above for details.timeStamp
- A date-and-time when this alarm was generatedcustomAttributes
-
-
Alarm
@Deprecated public Alarm(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, PerceivedSeverity severity, boolean isCleared, String alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Deprecated.Not for public use, The isCleared flag is intended to be set by NCS and not by the constructor This method is expected to be retained only as a package private method. Replaced byAlarm(ManagedDevice, ManagedObject, ConfIdentityRef, PerceivedSeverity, ConfBuf, List, List, List, ConfDatetime, Attribute...)
-
Alarm
public Alarm(ManagedDevice managedDevice, ManagedObject managedObject, ConfIdentityRef alarmType, PerceivedSeverity severity, ConfBuf alarmText, List<ManagedObject> impactedObjects, List<AlarmId> relatedAlarms, List<ManagedObject> rootCauseObjects, ConfDatetime timeStamp, Attribute... customAttributes) Creates an alarm- Parameters:
managedDevice
- The managed device for which this alarm is associated with, plain string which identifies the device (usually the key string in /ncs:devices/device{dev1}). I.e. dev1managedObject
- The managed object for which this alarm is associated with. Also referred to as the "Alarming Object". This may not be the same as the rootCause object, which is set in the rootCauseObjects parameter. If an NCS Service generates an alarm based on an error state in a device used by this service, the managedObject is the service Id and the object on the device the rootCauseObjects.alarmType
- The AlarmType this alarm is associated with. This is a YANG identity. Alarm types are defined by the YANG developer and should be designed to be as specific as possible.severity
- What state this alarm is in. Cleared, Indeterminate, Minor, Warning, Major, CriticalalarmText
- A human readable description of this problem.impactedObjects
- A list of ManagedObjects that may no longer function due to this alarm. Typically these point to NCS Services that are dependent on the objects on the device that reported the problem. In NCS 2.3 and later there is a backpointer attribute available on objects in the device tree that has been created by a Service. These backpointers are instance reference pointer that should be used as impactedObjects.relatedAlarms
- References to other alarms that have been generated as a consequence of this alarm, or that has a relation to this alarm.rootCauseObjects
- ManagedObjects that are likely to be the root cause of this alarm. This is different from the "alarming object". See managedObject above for details.timeStamp
- A date-and-time when this alarm was generatedcustomAttributes
-
-
-
Method Details
-
isCleared
public boolean isCleared()Returntrue
if this alarm has been cleared by the underlying resource. Idicates the clearance state of this alarm. An alarm might toggle from active alarm to cleared alarm and back to active again.- Returns:
- true if this alarm has been cleared.
-
lastAlarm
-
isLastAlarm
public boolean isLastAlarm() -
getManagedObject
- Returns:
- managed object.
-
getManagedDevice
- Returns:
- managed device.
-
getAlarmType
- Returns:
- alarm type
-
getSpecificProblem
-
getPerceivedSeverity
- Returns:
- perceived severity.
-
getImpactedObjects
- Returns:
- impacted objects.
-
getRelatedAlarms
- Returns:
- related alarms.
-
getRootCauseObjects
- Returns:
- root cause objects.
-
getTimeStamp
- Returns:
- timestamp of the alarm.
-
getCustomAttributes
- Returns:
- custom attributes.
-
getAlarmText
Deprecated.UsealarmText
- Returns:
- alarm text.
-
alarmText
- Returns:
- alarm text.
-
hashCode
public int hashCode() -
equals
A unique Alarm instance is the combination of
ManagedDevice
,ManagedObject
, (alarmtype)ConfIdentityRef
and (specific problem)ConfBuf
-
toString
-