ErrNotFound is returned if a Store cannot find the Alert.
var ErrNotFound = errors.New("alert not found")
Alerts provides lock-coordinated to an in-memory map of alerts, keyed by their fingerprint. Resolved alerts are removed from the map based on gcInterval. An optional callback can be set which receives a slice of all resolved alerts that have been removed.
type Alerts struct { sync.Mutex // contains filtered or unexported fields }
func NewAlerts() *Alerts
NewAlerts returns a new Alerts struct.
func (a *Alerts) Delete(fp model.Fingerprint) error
Delete removes the Alert with the matching fingerprint from the store.
func (a *Alerts) Empty() bool
Empty returns true if the store is empty.
func (a *Alerts) Get(fp model.Fingerprint) (*types.Alert, error)
Get returns the Alert with the matching fingerprint, or an error if it is not found.
func (a *Alerts) List() []*types.Alert
List returns a slice of Alerts currently held in memory.
func (a *Alerts) Run(ctx context.Context, interval time.Duration)
Run starts the GC loop. The interval must be greater than zero; if not, the function will panic.
func (a *Alerts) Set(alert *types.Alert) error
Set unconditionally sets the alert in memory.
func (a *Alerts) SetGCCallback(cb func([]*types.Alert))
SetGCCallback sets a GC callback to be executed after each GC.