type AlertStoreCallback interface { // PreStore is called before alert is stored into the store. If this method returns error, // alert is not stored. // Existing flag indicates whether alert has existed before (and is only updated) or not. // If alert has existed before, then alert passed to PreStore is result of merging existing alert with new alert. PreStore(alert *types.Alert, existing bool) error // PostStore is called after alert has been put into store. PostStore(alert *types.Alert, existing bool) // PostDelete is called after alert has been removed from the store due to alert garbage collection. PostDelete(alert *types.Alert) }
Alerts gives access to a set of alerts. All methods are goroutine-safe.
type Alerts struct {
// contains filtered or unexported fields
}
func NewAlerts(ctx context.Context, m types.Marker, intervalGC time.Duration, alertCallback AlertStoreCallback, l log.Logger, r prometheus.Registerer) (*Alerts, error)
NewAlerts returns a new alert provider.
func (a *Alerts) Close()
Close the alert provider.
func (a *Alerts) Get(fp model.Fingerprint) (*types.Alert, error)
Get returns the alert for a given fingerprint.
func (a *Alerts) GetPending() provider.AlertIterator
GetPending returns an iterator over all the alerts that have pending notifications.
func (a *Alerts) Put(alerts ...*types.Alert) error
Put adds the given alert to the set.
func (a *Alerts) Subscribe() provider.AlertIterator
Subscribe returns an iterator over active alerts that have not been resolved and successfully notified about. They are not guaranteed to be in chronological order.