IsStateChangesOnlybool`json:"stateChangesOnly"`// IsStateChangesOnly will only send alerts on state changes.
UseFlappingbool`json:"useFlapping"`// UseFlapping enables flapping detection. Flapping occurs when a service or host changes state too frequently, resulting in a storm of problem and recovery notification
Posts[]*Post`json:"post"`// HTTPPost will post the JSON alert data to the specified URLs.
TCPs[]*TCP`json:"tcp"`// TCP will send the JSON alert data to the specified endpoint via TCP.
Email[]*Email`json:"email"`// Email will send alert data to the specified emails.
Exec[]*Exec`json:"exec"`// Exec will run shell commandss when an alert triggers
Log[]*Log`json:"log"`// Log will log JSON alert data to files in JSON lines format.
// VictorOps sends alerts to the victorops.com service
typeVictorOpsstruct{
RoutingKeystring`json:"routingKey"`// RoutingKey is what is used to map the alert to a team
}
// PagerDuty sends alerts to the pagerduty.com service
typePagerDutystruct{
ServiceKeystring`json:"serviceKey"`// ServiceKey is the GUID of one of the "Generic API" integrations
}
// HipChat sends alerts to stride.com
typeHipChatstruct{
Roomstring`json:"room"`// Room is the HipChat room to post messages.
Tokenstring`json:"token"`// Token is the HipChat authentication token.
}
// Sensu sends alerts to sensu or sensuapp.org
typeSensustruct{
Sourcestring`json:"source"`// Source is the check source, used to create a proxy client for an external resource
Handlers[]string`json:"handlers"`// Handlers are Sensu event handlers are for taking action on events
}
// Pushover sends alerts to pushover.net
typePushoverstruct{
// UserKey is the User/Group key of your user (or you), viewable when logged
// into the Pushover dashboard. Often referred to as USER_KEY
// in the Pushover documentation.
UserKeystring`json:"userKey"`
// Device is the users device name to send message directly to that device,
// rather than all of a user's devices (multiple device names may
// be separated by a comma)
Devicestring`json:"device"`
// Title is your message's title, otherwise your apps name is used
Titlestring`json:"title"`
// URL is a supplementary URL to show with your message
URLstring`json:"url"`
// URLTitle is a title for your supplementary URL, otherwise just URL is shown
URLTitlestring`json:"urlTitle"`
// Sound is the name of one of the sounds supported by the device clients to override
// the user's default sound choice
Soundstring`json:"sound"`
}
// Slack sends alerts to a slack.com channel
typeSlackstruct{
Channelstring`json:"channel"`// Slack channel in which to post messages.
Usernamestring`json:"username"`// Username of the Slack bot.
IconEmojistring`json:"iconEmoji"`// IconEmoji is an emoji name surrounded in ':' characters; The emoji image will replace the normal user icon for the slack bot.
}
// Telegram sends alerts to telegram.org
typeTelegramstruct{
ChatIDstring`json:"chatId"`// ChatID is the Telegram user/group ID to post messages to.
ParseModestring`json:"parseMode"`// ParseMode tells telegram how to render the message (Markdown or HTML)
DisableWebPagePreviewbool`json:"disableWebPagePreview"`// IsDisableWebPagePreview will disables link previews in alert messages.
DisableNotificationbool`json:"disableNotification"`// IsDisableNotification will disables notifications on iOS devices and disables sounds on Android devices. Android users continue to receive notifications.
}
// OpsGenie sends alerts to opsgenie.com
typeOpsGeniestruct{
Teams[]string`json:"teams"`// Teams that the alert will be routed to send notifications
Recipients[]string`json:"recipients"`// Recipients can be a single user, group, escalation, or schedule (https://docs.opsgenie.com/docs/alert-recipients-and-teams)
}
// Talk sends alerts to Jane Talk (https://jianliao.com/site)