..
..  Copyright (c) 2019 AT&T Intellectual Property.
..  Copyright (c) 2019 Nokia.
..
..  Licensed under the Creative Commons Attribution 4.0 International
..  Public License (the "License"); you may not use this file except
..  in compliance with the License. You may obtain a copy of the License at
..
..    https://creativecommons.org/licenses/by/4.0/
..
..  Unless required by applicable law or agreed to in writing, documentation
..  distributed under the License is distributed on an "AS IS" BASIS,
..  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
..
..  See the License for the specific language governing permissions and
..  limitations under the License.
..

User-Guide
==========

.. contents::
   :depth: 3
   :local:

RIC Alarm System
----------------

Overview
--------
RIC alarm system consists of three components: Alarm Manager, Application Library and Command Line Interface

The Alarm Manager is responsible for managing alarm situations in RIC cluster and interfacing with Northbound applications
such as Prometheus Alert Manager to post the alarms as alerts. Alert Manager takes care of de-duplicating, silencing and
inhibition (suppressing) of alerts, and routing them to the VES-Agent, which, in turn, takes care of converting alerts to
faults and sending them to ONAP as VES events.

The Alarm Library provides a simple interface for RIC applications (both platform application and xApps) to raise and clear
alarms. The Alarm Library interacts with the Alarm Manager via RMR interface.

    .. image:: images/RIC_Alarm_System.png
      :width: 600
      :alt: Place in RIC's software architecture picture


Alarm Manager
-------------
The Alarm Manager listens alarms coming via RMR and REST interfaces. An application can raise or clear alarms via either
of interfaces. Alarm Manager listens also commands coming from CLI (Command Line Interface). In addition Alarm Manager supports few
other commands that can be given through the interfaces. Such as list active alarms, list alarm history, add new alarms
definition, delete existing alarm definition, re-raise alarms and clear all alarms. Those are not typically used by applications while
running. Alarm Manager itself re-raises alarms periodically to keep alarms in active state. The other commands are can be used through
CLI interface by operator or are used when applications is starting up or restarting.

Maximum amount of active alarms and size of alarm history are configurable. By default, the values are Maximum number of active
alarms = 5000, Maximum number of alarm history = 20,000.

Alarm definitions can be updated dynamically via REST interface. Default definitions are read from JSON configuration file when FM
service is deployed.


Alarm Library
-------------
The Alarm Library provides simple interface for RIC applications (both platform application and xApps) to raise and clear
alarms. A new alarm instance is created with InitAlarm()-function. ManagedObject (mo) and Application (ap) identities are
given as parameters for Alarm Context/Object

The Alarm object contains following parameters:

    SpecificProblem: problem that is the cause of the alarm \(*

    PerceivedSeverity: The severity of the alarm, see below for possible values

    ManagedObjectId: The name of the managed object that is the cause of the fault \(*

    ApplicationId: The name of the process raised the alarm \(*

    AdditionalInfo: Additional information given by the application

    IdentifyingInfo: Identifying additional information, which is part of alarm identity \(*

Items marked with \*, i.e., ManagedObjectId (mo), SpecificProblem (sp), ApplicationId (ap) and IdentifyingInfo (IdentifyingInfo) make
up the identity of the alarm. All parameters must be according to the alarm definition, i.e. all mandatory parameters should be present,
and parameters should have correct value type or be from some predefined range. Addressing the same alarm instance in a clear() or reraise()
call is done by making sure that all four values are the same is in the original raise() / reraise() call.

Alarm Manager does not allow raising "same alarm" more than once without that the alarm is cleared first. Alarm Manager compares
ManagedObjectId (mo), SpecificProblem (sp), ApplicationId (ap) and IdentifyingInfo (IdentifyingInfo) parameters to check possible 
duplicate. If the values are the same then alarm is suppressed. If application raises the "same alarm" but PerceivedSeverity of the alarm
is changed then Alarm Manager deletes the old alarm and makes new alarm according to new information.


Alarm APIs

    Raise: Raises the alarm instance given as a parameter

    Clear: Clears the alarm instance given as a parameter, if it the alarm active

    Reraise: Attempts to re-raise the alarm instance given as a parameter

    ClearAll: Clears all alarms matching moId and appId given as parameters (not supported yet)


Command line interface
----------------------

Through CLI operator can do the following operations:

 - Check active alarms
 - Check alarm history
 - Raise an alarm
 - Clear an alarm
 - Configure maximum active alarms and maximum alarms in alarm history
 - Add new alarm definitions that can be raised
 - Delete existing alarm definition that can be raised

CLI commands need to be given inside Alarm Manger pod. To get there first print name of the Alarm Manger pod.

.. code-block:: none

 kubectl get pods -A | grep alarmmanager

Output should be look someting like this: 

.. code-block:: none

 ricplt  deployment-ricplt-alarmmanager-6cc8764749-gnwjh 1/1 running 0  15d

Then give this command to enter inside the pod. Replace the pod name with the actual name from the printout.

.. code-block:: none

 kubectl exec -it deployment-ricplt-alarmmanager-6cc8764749-gnwjh bash

CLI commands can have some of the following parameters

.. code-block:: none

 --moid        ManagedObjectId, example string: RIC 
 --apid        ApplicationId string, example string: UEEC  
 --sp          SpecificProblem, example value: 8007
 --severity    Severity of the alarm, possible values: UNSPECIFIED, CRITICAL, MAJOR, MINOR, WARNING, CLEARED or DEFAULT
 --iinfo       Identifying info, a user specified string, example string: INFO-1
 --mal         Maximum number of active alarms, example value 1000
 --mah         Maximum number of alarms in alarm history, example value: 2000
 --aid         Alarm id, example value: 8007
 --atx         Alarm text string, example string: E2 CONNECTIVITY LOST TO E-NODEB
 --ety         Event type string, example string: Communication error
 --oin         Operation instructions string, example string: Not defined
 --rad         Raise alarm delay in seconds. Default value = 0
 --cad         Clear alarm delay in seconds. Default value = 0
 --prf         Performance profile id, possible values: 1 = peak performance test or 2 = endurance test
 --nal         Number of alarms, example value: 50
 --aps         Alarms per second, example value: 1
 --tim         Total time of test in minutes, example value: 1 
 --host        Alarm Manager host address. Default value = localhost
 --port        Alarm Manager port. Default value = 8080
 --if          Used Alarm Manager command interface, http or rmr: default value = http
 --active      Active alerts in Prometheus Alert Manager. Default value = true
 --inhibited   Inhibited alerts in Prometheus Alert Manager. Default value = true
 --silenced    Silenced alerts in Prometheus Alert Manager. Default value = true
 --unprocessed Unprocessed alerts in Prometheus Alert Manager. Default value = true
 --host        Prometheus Alert Manager host address
 --port        Prometheus Alert Manager port. Default value = 9093


``Note that there are two minus signs before parameter name!``
 
If parameter contains any white spaces then it must be enclosed in quotation marks like: "INFO 1"

CLI command examples:

 Following command are given at top level directory!

 Check active alarms:

 .. code-block:: none

  Syntax: cli/alarm-cli active [--host] [--port]
   
  Example: cli/alarm-cli active

  Example: cli/alarm-cli active --host localhost --port 8080

 Check alarm history:

 .. code-block:: none

  Syntax: cli/alarm-cli active  [--host] [--port]

  Example: cli/alarm-cli history

  Example: cli/alarm-cli history --host localhost --port 8080

 Raise alarm:

 .. code-block:: none

  Syntax: cli/alarm-cli raise --moid --apid --sp --severity --iinfo [--host] [--port] [--if]

  Example: cli/alarm-cli raise --moid RIC --apid UEEC --sp 8007 --severity CRITICAL --iinfo INFO-1

  Following is meant only for testing and verification purpose!

  Example: cli/alarm-cli raise --moid RIC --apid UEEC --sp 8007 --severity CRITICAL --iinfo INFO-1 --host localhost --port 8080 --if rmr

 Clear alarm:

 .. code-block:: none

  Syntax: cli/alarm-cli clear --moid --apid --sp --severity --iinfo [--host] [--port] [--if]

  Example: cli/alarm-cli clear --moid RIC --apid UEEC --sp 8007 --iinfo INFO-1

  Example: cli/alarm-cli clear --moid RIC --apid UEEC --sp 8007 --iinfo INFO-1 --host localhost --port 8080 --if rmr

 Configure maximum active alarms and maximum alarms in alarm history:

 .. code-block:: none

  Syntax: cli/alarm-cli configure --mal --mah [--host] [--port]

  Example: cli/alarm-cli configure --mal 1000 --mah 5000

  Example: cli/alarm-cli configure --mal 1000 --mah 5000 --host localhost --port 8080

 Add new alarm definition:

 .. code-block:: none

  Syntax: cli/alarm-cli define --aid 8007 --atx "E2 CONNECTIVITY LOST TO E-NODEB" --ety "Communication error" --oin "Not defined" [--rad] [--cad] [--host] [--port]

  Example: cli/alarm-cli define --aid 8007 --atx "E2 CONNECTIVITY LOST TO E-NODEB" --ety "Communication error" --oin "Not defined" --rad 0 --cad 0

  Example: cli/alarm-cli define --aid 8007 --atx "E2 CONNECTIVITY LOST TO E-NODEB" --ety "Communication error" --oin "Not defined" --rad 0 --cad 0 --host localhost --port 8080

 Delete existing alarm definition:

 .. code-block:: none

  Syntax: cli/alarm-cli undefine --aid [--host] [--port]

  Example: cli/alarm-cli undefine --aid 8007

  Example: cli/alarm-cli undefine --aid 8007 --host localhost --port 8080

 Conduct performance test:

 Note that this is meant only for testing and verification purpose!

 Before any performance test command can be issued, an environment variable needs to be set. The variable holds information where
 test alarm object file is stored.

 .. code-block:: none

  PERF_OBJ_FILE=cli/perf-alarm-object.json

  Syntax: cli/alarm-cli perf --prf --nal --aps --tim [--host] [--port] [--if]

  Peak performance test example: cli/alarm-cli perf --prf 1 --nal 50 --aps 1 --tim 1 --if rmr

  Peak performance test example: cli/alarm-cli perf --prf 1 --nal 50 --aps 1 --tim 1 --if http

  Peak performance test example: cli/alarm-cli perf --prf 1 --nal 50 --aps 1 --tim 1 --host localhost --port 8080 --if rmr

  Endurance test example: cli/alarm-cli perf --prf 2 --nal 50 --aps 1 --tim 1 --if rmr

  Endurance test example: cli/alarm-cli perf --prf 2 --nal 50 --aps 1 --tim 1 --if http

  Endurance test example: cli/alarm-cli perf --prf 2 --nal 50 --aps 1 --tim 1 --host localhost --port 8080 --if rmr

Get alerts from Prometheus Alert Manager: 

 .. code-block:: none

  Syntax: cli/alarm-cli alerts --active --inhibited --silenced --unprocessed --host [--port]

  Example: cli/alarm-cli alerts --active true --inhibited true --silenced true --unprocessed true --host 10.102.36.121 --port 9093


REST interface usage guide
--------------------------

REST interface offers all the same services plus some more that are available via CLI. The CLI also uses the REST interface to implement the services it offers.

Below are examples for REST interface. Curl tool is used to send REST commands.

 Check active alarms:

   Example: curl -X GET "http://localhost:8080/ric/v1/alarms/active" -H "accept: application/json" -H "Content-Type: application/json" -d "{}"

 Check alarm history:

   Example: curl -X GET "http://localhost:8080/ric/v1/alarms/history" -H "accept: application/json" -H "Content-Type: application/json" -d "{}"

 Raise alarm:

   Example: curl -X POST "http://localhost:8080/ric/v1/alarms" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"managedObjectId\": \"RIC\", \"applicationId\": \"UEEC\", \"specificProblem\": 8007, \"perceivedSeverity\": \"CRITICAL\", \"additionalInfo\": \"-\", \"identifyingInfo\": \"INFO-1\", \"AlarmAction\": \"RAISE\", \"AlarmTime\": 0}"

 Clear alarm:

   Example: curl -X DELETE "http://localhost:8080/ric/v1/alarms" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"managedObjectId\": \"RIC\", \"applicationId\": \"UEEC\", \"specificProblem\": 8007, \"perceivedSeverity\": \"\", \"additionalInfo\": \"-\", \"identifyingInfo\": \"INFO-1\", \"AlarmAction\": \"CLEAR\", \"AlarmTime\": 0}"

 Get configuration of maximum active alarms and maximum alarms in alarm history:

   Example: curl -X GET "http://localhost:8080/ric/v1/alarms/config" -H "accept: application/json" -H "Content-Type: application/json" -d "{}"

 Configure maximum active alarms and maximum alarms in alarm history:

   Example: curl -X POST "http://localhost:8080/ric/v1/alarms/config" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"maxactivealarms\": 1000, \"maxalarmhistory\": 5000}"

 Get all alarm definitions:

   Example: curl -X GET "http://localhost:8080/ric/v1/alarms/define" -H "accept: application/json" -H "Content-Type: application/json" -d "{}"

 Get an alarm definition:

   Syntax: curl -X GET "http://localhost:8080/ric/v1/alarms/define/{alarmId}" -H "accept: application/json" -H "Content-Type: application/json" -d "{}"

   Example: curl -X GET "http://localhost:8080/ric/v1/alarms/define/8007" -H  "accept: application/json" -H "Content-Type: application/json" -d "{}"

 Add one new alarm definition:

   Example: curl -X POST "http://localhost:8080/ric/v1/alarms/define" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"alarmdefinitions\": [{\"alarmId\": 8007, \"alarmText\": \"E2 CONNECTIVITY LOST TO E-NODEB\", \"eventtype\": \"Communication error\", \"operationinstructions\": \"Not defined\, \"raiseDelay\": 1, \"clearDelay\": 1"}]}"

 Add two new alarm definitions:

   Example: curl -X POST "http://localhost:8080/ric/v1/alarms/define" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"alarmdefinitions\": [{\"alarmId\": 8007, \"alarmText\": \"E2 CONNECTIVITY LOST TO E-NODEB\", \"eventtype\": \"Communication error\", \"operationinstructions\": \"Not defined\, \"raiseDelay\": 0, \"clearDelay\": 0"},{\"alarmId\": 8008, \"alarmText\": \"ACTIVE ALARM EXCEED MAX THRESHOLD\", \"eventtype\": \"storage warning\", \"operationinstructions\": \"Clear alarms or raise threshold\", \"raiseDelay\": 0, \"clearDelay\": 0}]}"

 Delete one existing alarm definition:

   Syntax: curl -X DELETE "http://localhost:8080/ric/v1/alarms/define/{alarmId}" -H "accept: application/json" -H "Content-Type: application/json" -d "{}"

   Example: curl -X DELETE "http://localhost:8080/ric/v1/alarms/define/8007" -H "accept: application/json" -H "Content-Type: application/json" -d "{}"


RMR interface usage guide
-------------------------
Through RMR interface application can only raise and clear alarms. RMR message payload is similar JSON message as in above REST interface use cases.

 Supported events via RMR interface
  
  - Raise alarm
  - Clear alarm
  - Reraise alarm
  - ClearAll alarms (not supported yet)


Example on how to use the API from Golang code
----------------------------------------------
Alarm library functions can be used directly from Golang code. Rising and clearing alarms goes via RMR interface from alarm library to Alarm Manager.


.. code-block:: none

 package main

 import (
    alarm "gerrit.o-ran-sc.org/r/ric-plt/alarm-go.git/alarm"
 )

 func main() {
    // Initialize the alarm component
    alarmer, err := alarm.InitAlarm("my-pod", "my-app")

    // Create a new Alarm object (SP=8004, etc)
    alarm := alarmer.NewAlarm(8004, alarm.SeverityMajor, "NetworkDown", "eth0")

    // Raise an alarm (SP=8004, etc)
    err := alarmer.Raise(alarm)

    // Clear an alarm (SP=8004)
    err := alarmer.Clear(alarm)

    // Re-raise an alarm (SP=8004)
    err := alarmer.Reraise(alarm)

    // Clear all alarms raised by the application - (not supported yet)
    err := alarmer.ClearAll()
 }
 
 
Example VES event
-----------------

.. code-block:: none

 INFO[2020-06-08T07:50:10Z]
 {
   "event": {
     "commonEventHeader": {
       "domain": "fault",
       "eventId": "fault0000000001",
       "eventName": "Fault_ricp_E2 CONNECTIVITY LOST TO G-NODEB",
       "lastEpochMicrosec": 1591602610944553,
       "nfNamingCode": "ricp",
       "priority": "Medium",
       "reportingEntityId": "035EEB88-7BA2-4C23-A349-3B6696F0E2C4",
       "reportingEntityName": "Vespa",
       "sequence": 1,
       "sourceName": "RIC",
       "startEpochMicrosec": 1591602610944553,
       "version": 3
     },

     "faultFields": {
       "alarmCondition": "E2 CONNECTIVITY LOST TO G-NODEB",
       "eventSeverity": "MAJOR",
       "eventSourceType": "virtualMachine",
       "faultFieldsVersion": 2,
       "specificProblem": "eth12",
       "vfStatus": "Active"
     }
   }
 }
 INFO[2020-06-08T07:50:10Z] Schema validation succeeded
