Increasing UT for Alarm-go
[ric-plt/alarm-go.git] / manager / cmd / manager.go
index 10f5115..660d637 100755 (executable)
@@ -81,7 +81,7 @@ func (a *AlarmManager) StartAlertTimer() {
                a.mutex.Lock()
                for _, m := range a.activeAlarms {
                        app.Logger.Info("Re-raising alarm: %v", m)
-                       a.PostAlert(a.GenerateAlertLabels(m.Alarm, AlertStatusActive, m.AlarmTime))
+                       a.PostAlert(a.GenerateAlertLabels(m.AlarmId, m.Alarm, AlertStatusActive, m.AlarmTime))
                }
                a.mutex.Unlock()
        }
@@ -185,7 +185,7 @@ func (a *AlarmManager) ProcessRaiseAlarm(m *AlarmNotification, alarmDef *alarm.A
        if app.Config.GetBool("controls.noma.enabled") {
                return a.PostAlarm(m)
        }
-       return a.PostAlert(a.GenerateAlertLabels(m.Alarm, AlertStatusActive, m.AlarmTime))
+       return a.PostAlert(a.GenerateAlertLabels(m.AlarmId, m.Alarm, AlertStatusActive, m.AlarmTime))
 }
 
 func (a *AlarmManager) ProcessClearAlarm(m *AlarmNotification, alarmDef *alarm.AlarmDefinition, idx int) (*alert.PostAlertsOK, error) {
@@ -321,17 +321,18 @@ func (a *AlarmManager) PostAlarm(m *AlarmNotification) (*alert.PostAlertsOK, err
        return nil, err
 }
 
-func (a *AlarmManager) GenerateAlertLabels(newAlarm alarm.Alarm, status AlertStatus, alarmTime int64) (models.LabelSet, models.LabelSet) {
+func (a *AlarmManager) GenerateAlertLabels(alarmId int, newAlarm alarm.Alarm, status AlertStatus, alarmTime int64) (models.LabelSet, models.LabelSet) {
        alarmDef := alarm.RICAlarmDefinitions[newAlarm.SpecificProblem]
        amLabels := models.LabelSet{
                "status":      string(status),
                "alertname":   alarmDef.AlarmText,
                "severity":    string(newAlarm.PerceivedSeverity),
                "service":     fmt.Sprintf("%s/%s", newAlarm.ManagedObjectId, newAlarm.ApplicationId),
+               "info":        newAlarm.IdentifyingInfo,
                "system_name": "RIC",
        }
        amAnnotations := models.LabelSet{
-               "alarm_id":         fmt.Sprintf("%d", alarmDef.AlarmId),
+               "alarm_id":         fmt.Sprintf("%d", alarmId),
                "specific_problem": fmt.Sprintf("%d", newAlarm.SpecificProblem),
                "event_type":       alarmDef.EventType,
                "identifying_info": newAlarm.IdentifyingInfo,
@@ -371,14 +372,20 @@ func (a *AlarmManager) StatusCB() bool {
        if !a.rmrReady {
                app.Logger.Info("RMR not ready yet!")
        }
-
        return a.rmrReady
 }
 
 func (a *AlarmManager) ConfigChangeCB(configparam string) {
-
        a.maxActiveAlarms = app.Config.GetInt("controls.maxActiveAlarms")
+       if a.maxActiveAlarms == 0 {
+               a.maxActiveAlarms = 5000
+       }
+
        a.maxAlarmHistory = app.Config.GetInt("controls.maxAlarmHistory")
+       if a.maxAlarmHistory == 0 {
+               a.maxAlarmHistory = 20000
+       }
+
        a.alertInterval = viper.GetInt("controls.promAlertManager.alertInterval")
        a.amHost = viper.GetString("controls.promAlertManager.address")
 
@@ -493,6 +500,16 @@ func NewAlarmManager(amHost string, alertInterval int, clearAlarm bool) *AlarmMa
                amHost = viper.GetString("controls.promAlertManager.address")
        }
 
+       maxActiveAlarms := app.Config.GetInt("controls.maxActiveAlarms")
+       if maxActiveAlarms == 0 {
+               maxActiveAlarms = 5000
+       }
+
+       maxAlarmHistory := app.Config.GetInt("controls.maxAlarmHistory")
+       if maxAlarmHistory == 0 {
+               maxAlarmHistory = 20000
+       }
+
        return &AlarmManager{
                rmrReady:               false,
                postClear:              clearAlarm,
@@ -503,8 +520,8 @@ func NewAlarmManager(amHost string, alertInterval int, clearAlarm bool) *AlarmMa
                activeAlarms:           make([]AlarmNotification, 0),
                alarmHistory:           make([]AlarmNotification, 0),
                uniqueAlarmId:          0,
-               maxActiveAlarms:        app.Config.GetInt("controls.maxActiveAlarms"),
-               maxAlarmHistory:        app.Config.GetInt("controls.maxAlarmHistory"),
+               maxActiveAlarms:        maxActiveAlarms,
+               maxAlarmHistory:        maxAlarmHistory,
                exceededActiveAlarmOn:  false,
                exceededAlarmHistoryOn: false,
                alarmInfoPvFile:        app.Config.GetString("controls.alarmInfoPvFile"),