Documentation
¶
Overview ¶
Package notifier manages notifications for consul-alerts
Package notifier manages notifications for consul-alerts
Index ¶
- Constants
- func MakeBody(messages Messages) string
- func MakeSubject(messages Messages) string
- type AwsSnsNotifier
- type EmailData
- type EmailNotifier
- type HipChatNotifier
- type InfluxdbNotifier
- type LogNotifier
- type MattermostAuthInfo
- type MattermostChannelInfo
- type MattermostChannelList
- type MattermostLoginInfo
- type MattermostNotifier
- func (mattermost *MattermostNotifier) Authenticate() bool
- func (mattermost *MattermostNotifier) Copy() Notifier
- func (mattermost *MattermostNotifier) GetAllTeams(teams *[]MattermostTeamInfo) bool
- func (mattermost *MattermostNotifier) GetChannels(teamID string, channels *[]MattermostChannelInfo) bool
- func (mattermost *MattermostNotifier) GetMe(me *MattermostUserInfo) bool
- func (mattermost *MattermostNotifier) GetTeam(teamID string, teamInfo *MattermostTeamInfo) bool
- func (mattermost *MattermostNotifier) GetURL() string
- func (mattermost *MattermostNotifier) GetUser(userID string, userInfo *MattermostUserInfo) bool
- func (mattermost *MattermostNotifier) Init() bool
- func (mattermost *MattermostNotifier) NotifierName() string
- func (mattermost *MattermostNotifier) Notify(messages Messages) bool
- func (mattermost *MattermostNotifier) PostMessage(teamID string, channelID string, postInfo *MattermostPostInfo) bool
- type MattermostPostInfo
- type MattermostTeamInfo
- type MattermostUserInfo
- type Message
- type Messages
- type Notifier
- type Notifiers
- type OpsGenieNotifier
- type PagerDutyNotifier
- type SlackNotifier
- type StringMap
- type VictorOpsEvent
- type VictorOpsNotifier
Constants ¶
const ( SYSTEM_HEALTHY string = "HEALTHY" SYSTEM_UNSTABLE string = "UNSTABLE" SYSTEM_CRITICAL string = "CRITICAL" )
Variables ¶
This section is empty.
Functions ¶
func MakeSubject ¶ added in v0.4.0
Types ¶
type AwsSnsNotifier ¶ added in v0.4.0
type AwsSnsNotifier struct {
Enabled bool
Region string `json:"region"`
TopicArn string `json:"topic-arn"`
}
func (*AwsSnsNotifier) Copy ¶ added in v0.5.0
func (awssns *AwsSnsNotifier) Copy() Notifier
func (*AwsSnsNotifier) NotifierName ¶ added in v0.4.0
func (awssns *AwsSnsNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*AwsSnsNotifier) Notify ¶ added in v0.4.0
func (awssns *AwsSnsNotifier) Notify(messages Messages) bool
type EmailData ¶
type EmailData struct {
ClusterName string
SystemStatus string
FailCount int
WarnCount int
PassCount int
Nodes map[string]Messages
}
func (EmailData) IsCritical ¶
type EmailNotifier ¶
type EmailNotifier struct {
ClusterName string `json:"cluster-name"`
Enabled bool
Template string `json:"template"`
Url string `json:"url"`
Port int `json:"port"`
Username string `json:"username"`
Password string `json:"password"`
SenderAlias string `json:"sender-alias"`
SenderEmail string `json:"sender-email"`
Receivers []string `json:"receivers"`
OnePerAlert bool `json:"one-per-alert"`
OnePerNode bool `json:"one-per-node"`
}
func (*EmailNotifier) Copy ¶ added in v0.5.0
func (emailNotifier *EmailNotifier) Copy() Notifier
func (*EmailNotifier) NotifierName ¶ added in v0.4.0
func (emailNotifier *EmailNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*EmailNotifier) Notify ¶
func (emailNotifier *EmailNotifier) Notify(alerts Messages) bool
Notify sends messages to the endpoint notifier
type HipChatNotifier ¶ added in v0.3.1
type HipChatNotifier struct {
Enabled bool
ClusterName string `json:"cluster-name"`
RoomId string `json:"room-id"`
AuthToken string `json:"auth-token"`
BaseURL string `json:"base-url"`
From string `json:"from"`
}
func (*HipChatNotifier) Copy ¶ added in v0.5.0
func (notifier *HipChatNotifier) Copy() Notifier
func (*HipChatNotifier) NotifierName ¶ added in v0.4.0
func (notifier *HipChatNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*HipChatNotifier) Notify ¶ added in v0.3.1
func (notifier *HipChatNotifier) Notify(messages Messages) bool
Notify sends messages to the endpoint notifier
type InfluxdbNotifier ¶
type InfluxdbNotifier struct {
Enabled bool
Host string `json:"host"`
Username string `json:"username"`
Password string `json:"password"`
Database string `json:"database"`
SeriesName string `json:"series-name"`
}
func (*InfluxdbNotifier) Copy ¶ added in v0.5.0
func (influxdb *InfluxdbNotifier) Copy() Notifier
func (*InfluxdbNotifier) NotifierName ¶ added in v0.4.0
func (influxdb *InfluxdbNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*InfluxdbNotifier) Notify ¶
func (influxdb *InfluxdbNotifier) Notify(messages Messages) bool
Notify sends messages to the endpoint notifier
type LogNotifier ¶
func (*LogNotifier) Copy ¶ added in v0.5.0
func (logNotifier *LogNotifier) Copy() Notifier
func (*LogNotifier) NotifierName ¶ added in v0.4.0
func (logNotifier *LogNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*LogNotifier) Notify ¶
func (logNotifier *LogNotifier) Notify(alerts Messages) bool
Notify sends messages to the endpoint notifier
type MattermostAuthInfo ¶ added in v0.5.0
type MattermostAuthInfo struct {
UserID string `json:"id"`
CreateAt int64 `json:"create_at"`
UpdateAt int64 `json:"update_at"`
DeleteAt int64 `json:"delete_at"`
UserName string `json:"username"`
AuthData string `json:"auth_data"`
AuthService string `json:"auth_service"`
Email string `json:"email"`
EmailVerified bool `json:"email_verified"`
NickName string `json:"nickname"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Roles string `json:"roles"`
AllowMarketing bool `json:"allow_marketing"`
NotifyProps StringMap `json:"notify_props"`
Props StringMap `json:"props"`
LastPasswordUpdate int64 `json:"last_password_update"`
LastPictureUpdate int64 `json:"last_picture_update"`
}
type MattermostChannelInfo ¶ added in v0.5.0
type MattermostChannelInfo struct {
ChannelID string `json:"id"`
CreateAt int64 `json:"create_at"`
UpdateAt int64 `json:"update_at"`
DeleteAt int64 `json:"delete_at"`
TeamID string `json:"team_id"`
Type string `json:"type"`
DisplayName string `json:"display_name"`
Name string `json:"name"`
Header string `json:"header"`
Purpose string `json:"purpose"`
LastPostAt int64 `json:"last_post_at"`
TotalMsgCount int64 `json:"total_msg_count"`
ExtraUpdateAt int64 `json:"extra_update_at"`
CreatorID string `json:"creator_id"`
}
type MattermostChannelList ¶ added in v0.5.0
type MattermostChannelList struct {
Channels []MattermostChannelInfo
}
type MattermostLoginInfo ¶ added in v0.5.0
type MattermostNotifier ¶ added in v0.5.0
type MattermostNotifier struct {
ClusterName string
Url string
UserName string
Password string
Team string
Channel string
Detailed bool
NotifName string
Enabled bool
/* Filled in after authentication */
Initialized bool
Token string
TeamID string
UserID string
ChannelID string
Text string
}
func (*MattermostNotifier) Authenticate ¶ added in v0.5.0
func (mattermost *MattermostNotifier) Authenticate() bool
func (*MattermostNotifier) Copy ¶ added in v0.5.0
func (mattermost *MattermostNotifier) Copy() Notifier
func (*MattermostNotifier) GetAllTeams ¶ added in v0.5.0
func (mattermost *MattermostNotifier) GetAllTeams(teams *[]MattermostTeamInfo) bool
func (*MattermostNotifier) GetChannels ¶ added in v0.5.0
func (mattermost *MattermostNotifier) GetChannels(teamID string, channels *[]MattermostChannelInfo) bool
func (*MattermostNotifier) GetMe ¶ added in v0.5.0
func (mattermost *MattermostNotifier) GetMe(me *MattermostUserInfo) bool
func (*MattermostNotifier) GetTeam ¶ added in v0.5.0
func (mattermost *MattermostNotifier) GetTeam(teamID string, teamInfo *MattermostTeamInfo) bool
func (*MattermostNotifier) GetURL ¶ added in v0.5.0
func (mattermost *MattermostNotifier) GetURL() string
func (*MattermostNotifier) GetUser ¶ added in v0.5.0
func (mattermost *MattermostNotifier) GetUser(userID string, userInfo *MattermostUserInfo) bool
func (*MattermostNotifier) Init ¶ added in v0.5.0
func (mattermost *MattermostNotifier) Init() bool
func (*MattermostNotifier) NotifierName ¶ added in v0.5.0
func (mattermost *MattermostNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*MattermostNotifier) Notify ¶ added in v0.5.0
func (mattermost *MattermostNotifier) Notify(messages Messages) bool
Notify sends messages to the endpoint notifier
func (*MattermostNotifier) PostMessage ¶ added in v0.5.0
func (mattermost *MattermostNotifier) PostMessage(teamID string, channelID string, postInfo *MattermostPostInfo) bool
type MattermostPostInfo ¶ added in v0.5.0
type MattermostPostInfo struct {
PostID string `json:"id"`
CreateAt int64 `json:"create_at"`
UpdateAt int64 `json:"update_at"`
DeleteAt int64 `json:"delete_at"`
UserID string `json:"user_id"`
ChannelID string `json:"channel_id"`
RootID string `json:"root_id"`
ParentID string `json:"parent_id"`
OriginalID string `json:"original_id"`
Message string `json:"message"`
Type string `json:"type"`
Props StringMap `json:"props"`
Filenames StringMap `json:"filenames"`
PendingPostID string `json:"pending_post_id"`
}
type MattermostTeamInfo ¶ added in v0.5.0
type MattermostTeamInfo struct {
TeamID string `json:"id"`
CreateAt int64 `json:"create_at"`
UpdateAt int64 `json:"update_at"`
DeleteAt int64 `json:"delete_at"`
DisplayName string `json:"display_name"`
Name string `json:"name"`
Email string `json:"email"`
Type string `json:"type"`
AllowedDomains string `json:"allowed_domains"`
InviteID string `json:"invite_id"`
AllowOpenInvite bool `json:"allow_open_invite"`
}
type MattermostUserInfo ¶ added in v0.5.0
type MattermostUserInfo struct {
UserID string `json:"id"`
CreateAt int64 `json:"create_at"`
UpdateAt int64 `json:"update_at"`
DeleteAt int64 `json:"delete_at"`
Username string `json:"username"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Nickname string `json:"nickname"`
Email string `json:"email"`
EmailVerified bool `json:"email_verified"`
Password string `json:"password"`
AuthData *string `json:"auth_data"`
AuthService string `json:"auth_service"`
Roles string `json:"roles"`
NotifyProps StringMap `json:"notify_props"`
Props StringMap `json:"props,omitempty"`
LastPasswordUpdate int64 `json:"last_password_update"`
LastPictureUpdate int64 `json:"last_picture_update"`
FailedAttempts int `json:"failed_attempts"`
MfaActive bool `json:"mfa_active"`
MfaSecret string `json:"mfa_secret"`
}
type Message ¶
type Message struct {
Node string
ServiceId string
Service string
CheckId string
Check string
Status string
Output string
Notes string
Interval int
RmdCheck time.Time
NotifList map[string]bool
VarOverrides Notifiers
Timestamp time.Time
}
func (Message) IsCritical ¶
type Notifiers ¶ added in v0.5.0
type Notifiers struct {
Email *EmailNotifier `json:"email"`
Log *LogNotifier `json:"log"`
Influxdb *InfluxdbNotifier `json:"influxdb"`
Slack *SlackNotifier `json:"slack"`
Mattermost *MattermostNotifier `json:"mattermost"`
PagerDuty *PagerDutyNotifier `json:"pagerduty"`
HipChat *HipChatNotifier `json:"hipchat"`
OpsGenie *OpsGenieNotifier `json:"opsgenie"`
AwsSns *AwsSnsNotifier `json:"awssns"`
VictorOps *VictorOpsNotifier `json:"victorops"`
Custom []string `json:"custom"`
}
type OpsGenieNotifier ¶ added in v0.3.3
type OpsGenieNotifier struct {
Enabled bool
ClusterName string `json:"cluster-name"`
ApiKey string `json:"api-key"`
}
func (*OpsGenieNotifier) Copy ¶ added in v0.5.0
func (opsgenie *OpsGenieNotifier) Copy() Notifier
func (*OpsGenieNotifier) NotifierName ¶ added in v0.4.0
func (opsgenie *OpsGenieNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*OpsGenieNotifier) Notify ¶ added in v0.3.3
func (opsgenie *OpsGenieNotifier) Notify(messages Messages) bool
Notify sends messages to the endpoint notifier
type PagerDutyNotifier ¶ added in v0.1.2
type PagerDutyNotifier struct {
Enabled bool
ServiceKey string `json:"service-key"`
ClientName string `json:"client-name"`
ClientUrl string `json:"client-url"`
}
func (*PagerDutyNotifier) Copy ¶ added in v0.5.0
func (pd *PagerDutyNotifier) Copy() Notifier
func (*PagerDutyNotifier) NotifierName ¶ added in v0.4.0
func (pd *PagerDutyNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*PagerDutyNotifier) Notify ¶ added in v0.1.2
func (pd *PagerDutyNotifier) Notify(messages Messages) bool
Notify sends messages to the endpoint notifier
type SlackNotifier ¶
type SlackNotifier struct {
ClusterName string `json:"-"`
Url string `json:"-"`
Channel string `json:"channel"`
Username string `json:"username"`
IconUrl string `json:"icon_url"`
IconEmoji string `json:"icon_emoji"`
Text string `json:"text,omitempty"`
Attachments []attachment `json:"attachments,omitempty"`
Detailed bool `json:"-"`
Enabled bool
}
func (*SlackNotifier) Copy ¶ added in v0.5.0
func (slack *SlackNotifier) Copy() Notifier
func (*SlackNotifier) NotifierName ¶ added in v0.4.0
func (slack *SlackNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*SlackNotifier) Notify ¶
func (slack *SlackNotifier) Notify(messages Messages) bool
Notify sends messages to the endpoint notifier
type VictorOpsEvent ¶ added in v0.4.0
type VictorOpsEvent struct {
// Explicitly listed by http://victorops.force.com/knowledgebase/articles/Integration/Alert-Ingestion-API-Documentation/
MessageType string `json:"message_type"`
EntityID string `json:"entity_id"`
Timestamp uint32 `json:"timestamp"`
StateMessage string `json:"state_message"`
MonitoringTool string `json:"monitoring_tool"`
EntityDisplayName string `json:"entity_display_name"`
// Helpful fields from http://victorops.force.com/knowledgebase/articles/Getting_Started/Incident-Fields-Glossary/?l=en_US&fs=RelatedArticle
HostName string `json:"host_name"`
MonitorName string `json:"monitor_name"`
// VictorOps lets you add arbitrary fields to help custom notification logic, so we'll set
// node, service, service ID, check, and check ID
ConsulNode string `json:"consul_node"`
ConsulService string `json:"consul_service,omitempty"`
ConsulServiceID string `json:"consul_service_id,omitempty"`
ConsulCheck string `json:"consul_check"`
ConsulCheckID string `json:"consul_check_id"`
}
VictorOpsEvent represents the options we'll pass to the VictorOps API
type VictorOpsNotifier ¶ added in v0.4.0
type VictorOpsNotifier struct {
Enabled bool
APIKey string `json:"api-key"`
RoutingKey string `json:"routing-key"`
}
VictorOpsNotifier provides configuration options for the VictorOps notifier
func (*VictorOpsNotifier) Copy ¶ added in v0.5.0
func (vo *VictorOpsNotifier) Copy() Notifier
func (*VictorOpsNotifier) NotifierName ¶ added in v0.4.0
func (vo *VictorOpsNotifier) NotifierName() string
NotifierName provides name for notifier selection
func (*VictorOpsNotifier) Notify ¶ added in v0.4.0
func (vo *VictorOpsNotifier) Notify(messages Messages) bool
Notify sends messages to the endpoint notifier