gatus/core/alert.go

52 lines
1.8 KiB
Go
Raw Normal View History

2020-08-20 01:41:01 +02:00
package core
2020-08-22 20:15:44 +02:00
// Alert is the service's alert configuration
2020-08-20 01:41:01 +02:00
type Alert struct {
2020-08-22 20:15:44 +02:00
// Type of alert
Type AlertType `yaml:"type"`
// Enabled defines whether or not the alert is enabled
Enabled bool `yaml:"enabled"`
// FailureThreshold is the number of failures in a row needed before triggering the alert
FailureThreshold int `yaml:"failure-threshold"`
2020-08-22 20:15:44 +02:00
// Description of the alert. Will be included in the alert sent.
Description string `yaml:"description"`
// SendOnResolved defines whether to send a second notification when the issue has been resolved
SendOnResolved bool `yaml:"send-on-resolved"`
2020-09-17 01:26:19 +02:00
// SuccessThreshold defines how many successful executions must happen in a row before an ongoing incident is marked as resolved
SuccessThreshold int `yaml:"success-threshold"`
2020-09-17 01:26:19 +02:00
// ResolveKey is an optional field that is used by some providers (i.e. PagerDuty's dedup_key) to resolve
// ongoing/triggered incidents
ResolveKey string
// Triggered is used to determine whether an alert has been triggered. When an alert is resolved, this value
// should be set back to false. It is used to prevent the same alert from going out twice.
Triggered bool
2020-08-20 01:41:01 +02:00
}
2020-10-23 21:58:59 +02:00
// AlertType is the type of the alert.
// The value will generally be the name of the alert provider
2020-08-20 01:41:01 +02:00
type AlertType string
const (
2020-10-23 21:58:59 +02:00
// SlackAlert is the AlertType for the slack alerting provider
SlackAlert AlertType = "slack"
2020-11-14 15:55:37 +01:00
// MattermostAlert is the AlertType for the mattermost alerting provider
MattermostAlert AlertType = "mattermost"
2020-10-23 21:58:59 +02:00
// PagerDutyAlert is the AlertType for the pagerduty alerting provider
2020-09-17 01:26:19 +02:00
PagerDutyAlert AlertType = "pagerduty"
2020-10-23 21:58:59 +02:00
// TwilioAlert is the AlertType for the twilio alerting provider
TwilioAlert AlertType = "twilio"
// CustomAlert is the AlertType for the custom alerting provider
CustomAlert AlertType = "custom"
2020-08-20 01:41:01 +02:00
)