Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActivationService ¶
type ActivationService interface {
Process(ctx context.Context, alarm types.Alarm, eventReceivedTimestamp datetime.MicroTime, entityType string, isMetaAlarmUpdated bool) (bool, error)
}
ActivationService checks alarm and sends activation event if alarm doesn't have active snooze and pbehavior.
func NewActivationService ¶
type Adapter ¶
type Adapter interface { // GetAlarmsWithCancelMark returns all alarms where v.cancel is not null GetAlarmsWithCancelMark(ctx context.Context) ([]types.Alarm, error) // GetAlarmsWithSnoozeMark returns all alarms where v.snooze is not null GetAlarmsWithSnoozeMark(ctx context.Context) ([]types.Alarm, error) // GetAlarmsWithFlappingStatus returns all alarms whose status is flapping GetAlarmsWithFlappingStatus(ctx context.Context) ([]types.AlarmWithEntity, error) // GetAlarmsWithoutTicketByComponent returns all ongoing alarms which do // not have a ticket, given a component's name. GetAlarmsWithoutTicketByComponent(ctx context.Context, component string) ([]types.AlarmWithEntity, error) GetOpenedAlarmByAlarmId(ctx context.Context, id string) (types.Alarm, error) GetAlarmByAlarmId(ctx context.Context, id string) (types.Alarm, error) // GetOpenedAlarmsByIDs gets ongoing alarms related the provided entity ids GetOpenedAlarmsByIDs(ctx context.Context, ids []string, alarms *[]types.Alarm) error GetOpenedAlarmsWithEntityByIDs(ctx context.Context, ids []string, alarms *[]types.AlarmWithEntity) error GetCountOpenedAlarmsByIDs(ctx context.Context, ids []string) (int64, error) GetOpenedAlarmsWithEntity(ctx context.Context) (mongo.Cursor, error) // GetOpenedAlarmsByAlarmIDs gets ongoing alarms related the provided alarm ids GetOpenedAlarmsByAlarmIDs(ctx context.Context, ids []string, alarms *[]types.Alarm) error GetOpenedAlarmsWithLastDatesBefore(ctx context.Context, time datetime.CpsTime) (mongo.Cursor, error) GetOpenedAlarmsByConnectorIdleRules(ctx context.Context) ([]types.Alarm, error) CountResolvedAlarm(ctx context.Context, alarmList []string) (int, error) GetLastAlarmByEntityID(ctx context.Context, entityID string) (*types.Alarm, error) // DeleteResolvedAlarms deletes resolved alarms from resolved collection after some duration DeleteResolvedAlarms(ctx context.Context, duration time.Duration) error // CopyAlarmToResolvedCollection copies alarm to resolved alarm collection CopyAlarmToResolvedCollection(ctx context.Context, alarm types.Alarm) error FindToCheckPbehaviorInfo(ctx context.Context, createdBefore datetime.CpsTime, idsWithPbehaviors []string) (mongo.Cursor, error) GetWorstAlarmStateAndMaxLastEventDate(ctx context.Context, entityIds []string) (int64, int64, error) UpdateLastEventDate(ctx context.Context, entityIds []string, t datetime.CpsTime) error }
func NewAdapter ¶
type Cleaner ¶
type Cleaner interface { // ArchiveResolvedAlarms archives alarm to archived alarm collection. ArchiveResolvedAlarms(ctx context.Context, before datetime.CpsTime, limit int64) (int64, error) // DeleteArchivedResolvedAlarms deletes resolved alarms from archived collection after some time. DeleteArchivedResolvedAlarms(ctx context.Context, before datetime.CpsTime, limit int64) (int64, error) }
type EventProcessor ¶
type EventProcessor interface { // Process processes an event and updates the corresponding // alarm. It enriches the event with this alarm, and returns an AlarmChange // representing the change that occurred on this alarm and its previous // state. Process(ctx context.Context, event *types.Event) (types.AlarmChange, error) }
type MetaAlarmEventProcessor ¶
type MetaAlarmEventProcessor interface { // ProcessAxeRpc handles related meta alarm parents and children after alarm change. ProcessAxeRpc(ctx context.Context, event rpc.AxeEvent, eventRes rpc.AxeResultEvent) error // CreateMetaAlarm creates meta alarm by event. CreateMetaAlarm(ctx context.Context, event rpc.AxeEvent) (*types.Alarm, []types.Alarm, error) // AttachChildrenToMetaAlarm attaches children to meta alarm by event. AttachChildrenToMetaAlarm(ctx context.Context, event rpc.AxeEvent) (*types.Alarm, []types.Alarm, []types.Event, error) // DetachChildrenFromMetaAlarm detaches children from meta alarm by event. DetachChildrenFromMetaAlarm(ctx context.Context, event rpc.AxeEvent) (*types.Alarm, error) }
type Service ¶
type Service interface { // ResolveClosed close ok alarms. ResolveClosed(ctx context.Context) ([]types.Alarm, error) // ResolveCancels close canceled alarms when time has expired ResolveCancels(ctx context.Context, alarmConfig config.AlarmConfig) ([]types.Alarm, error) // ResolveSnoozes remove snooze state when snooze time has expired ResolveSnoozes(ctx context.Context, alarmConfig config.AlarmConfig) ([]types.Alarm, error) // UpdateFlappingAlarms updates the status of the flapping alarms, removing // the flapping status if needed. UpdateFlappingAlarms(ctx context.Context) ([]types.Alarm, error) }
func NewService ¶
func NewService( alarmAdapter Adapter, resolveRuleAdapter resolverule.Adapter, alarmStatusService alarmstatus.Service, logger zerolog.Logger, ) Service
NewService gives the correct alarm adapter. Give nil to the redis client and it will create a new redis.Client with the dedicated redis database for alarms.
Click to show internal directories.
Click to hide internal directories.