本文整理匯總了Golang中github.com/influxdata/kapacitor/pipeline.AlertNode類的典型用法代碼示例。如果您正苦於以下問題:Golang AlertNode類的具體用法?Golang AlertNode怎麽用?Golang AlertNode使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了AlertNode類的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: newAlertNode
// Create a new AlertNode which caches the most recent item and exposes it over the HTTP API.
func newAlertNode(et *ExecutingTask, n *pipeline.AlertNode, l *log.Logger) (an *AlertNode, err error) {
an = &AlertNode{
node: node{Node: n, et: et, logger: l},
a: n,
}
an.node.runF = an.runAlert
// Create buffer pool for the templates
an.bufPool = sync.Pool{
New: func() interface{} {
return new(bytes.Buffer)
},
}
// Parse templates
an.idTmpl, err = text.New("id").Parse(n.Id)
if err != nil {
return nil, err
}
an.messageTmpl, err = text.New("message").Parse(n.Message)
if err != nil {
return nil, err
}
an.detailsTmpl, err = html.New("details").Funcs(html.FuncMap{
"json": func(v interface{}) html.JS {
tmpBuffer := an.bufPool.Get().(*bytes.Buffer)
defer func() {
tmpBuffer.Reset()
an.bufPool.Put(tmpBuffer)
}()
json.NewEncoder(tmpBuffer).Encode(v)
return html.JS(tmpBuffer.String())
},
}).Parse(n.Details)
if err != nil {
return nil, err
}
// Construct alert handlers
an.handlers = make([]AlertHandler, 0)
for _, post := range n.PostHandlers {
post := post
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePost(post, ad) })
}
for _, email := range n.EmailHandlers {
email := email
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleEmail(email, ad) })
}
if len(n.EmailHandlers) == 0 && (et.tm.SMTPService != nil && et.tm.SMTPService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleEmail(&pipeline.EmailHandler{}, ad) })
}
// If email has been configured with state changes only set it.
if et.tm.SMTPService != nil &&
et.tm.SMTPService.Global() &&
et.tm.SMTPService.StateChangesOnly() {
n.IsStateChangesOnly = true
}
for _, exec := range n.ExecHandlers {
exec := exec
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleExec(exec, ad) })
}
for _, log := range n.LogHandlers {
log := log
if !filepath.IsAbs(log.FilePath) {
return nil, fmt.Errorf("alert log path must be absolute: %s is not absolute", log.FilePath)
}
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleLog(log, ad) })
}
for _, vo := range n.VictorOpsHandlers {
vo := vo
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleVictorOps(vo, ad) })
}
if len(n.VictorOpsHandlers) == 0 && (et.tm.VictorOpsService != nil && et.tm.VictorOpsService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleVictorOps(&pipeline.VictorOpsHandler{}, ad) })
}
for _, pd := range n.PagerDutyHandlers {
pd := pd
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePagerDuty(pd, ad) })
}
if len(n.PagerDutyHandlers) == 0 && (et.tm.PagerDutyService != nil && et.tm.PagerDutyService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePagerDuty(&pipeline.PagerDutyHandler{}, ad) })
}
for _, sensu := range n.SensuHandlers {
sensu := sensu
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleSensu(sensu, ad) })
}
//.........這裏部分代碼省略.........
示例2: newAlertNode
// Create a new AlertNode which caches the most recent item and exposes it over the HTTP API.
func newAlertNode(et *ExecutingTask, n *pipeline.AlertNode) (an *AlertNode, err error) {
an = &AlertNode{
node: node{Node: n, et: et},
a: n,
}
an.node.runF = an.runAlert
// Parse templates
tmpl, err := template.New("id").Parse(n.Id)
if err != nil {
return nil, err
}
an.idTmpl = tmpl
tmpl, err = template.New("message").Parse(n.Message)
if err != nil {
return nil, err
}
an.messageTmpl = tmpl
// Construct alert handlers
an.handlers = make([]AlertHandler, 0)
for _, post := range n.PostHandlers {
post := post
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePost(post, ad) })
}
for _, email := range n.EmailHandlers {
email := email
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleEmail(email, ad) })
}
if len(n.EmailHandlers) == 0 && (et.tm.SMTPService != nil && et.tm.SMTPService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleEmail(&pipeline.EmailHandler{}, ad) })
}
// If email has been configured globally only send state changes.
if et.tm.SMTPService != nil && et.tm.SMTPService.Global() {
n.IsStateChangesOnly = true
}
for _, exec := range n.ExecHandlers {
exec := exec
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleExec(exec, ad) })
}
for _, log := range n.LogHandlers {
log := log
if !path.IsAbs(log.FilePath) {
return nil, fmt.Errorf("alert log path must be absolute: %s is not absolute", log.FilePath)
}
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleLog(log, ad) })
}
for _, vo := range n.VictorOpsHandlers {
vo := vo
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleVictorOps(vo, ad) })
}
if len(n.VictorOpsHandlers) == 0 && (et.tm.VictorOpsService != nil && et.tm.VictorOpsService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleVictorOps(&pipeline.VictorOpsHandler{}, ad) })
}
for _, pd := range n.PagerDutyHandlers {
pd := pd
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePagerDuty(pd, ad) })
}
if len(n.PagerDutyHandlers) == 0 && (et.tm.PagerDutyService != nil && et.tm.PagerDutyService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePagerDuty(&pipeline.PagerDutyHandler{}, ad) })
}
for _, slack := range n.SlackHandlers {
slack := slack
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleSlack(slack, ad) })
}
if len(n.SlackHandlers) == 0 && (et.tm.SlackService != nil && et.tm.SlackService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleSlack(&pipeline.SlackHandler{}, ad) })
}
// If slack has been configured globally only send state changes.
if et.tm.SlackService != nil && et.tm.SlackService.Global() {
n.IsStateChangesOnly = true
}
for _, hipchat := range n.HipChatHandlers {
hipchat := hipchat
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleHipChat(hipchat, ad) })
}
if len(n.HipChatHandlers) == 0 && (et.tm.HipChatService != nil && et.tm.HipChatService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleHipChat(&pipeline.HipChatHandler{}, ad) })
}
// If HipChat has been configured globally only send state changes.
if et.tm.HipChatService != nil && et.tm.HipChatService.Global() {
n.IsStateChangesOnly = true
}
for _, og := range n.OpsGenieHandlers {
og := og
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleOpsGenie(og, ad) })
}
if len(n.OpsGenieHandlers) == 0 && (et.tm.OpsGenieService != nil && et.tm.OpsGenieService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleOpsGenie(&pipeline.OpsGenieHandler{}, ad) })
}
//.........這裏部分代碼省略.........
示例3: newAlertNode
// Create a new AlertNode which caches the most recent item and exposes it over the HTTP API.
func newAlertNode(et *ExecutingTask, n *pipeline.AlertNode, l *log.Logger) (an *AlertNode, err error) {
an = &AlertNode{
node: node{Node: n, et: et, logger: l},
a: n,
}
an.node.runF = an.runAlert
// Parse templates
an.idTmpl, err = text.New("id").Parse(n.Id)
if err != nil {
return nil, err
}
an.messageTmpl, err = text.New("message").Parse(n.Message)
if err != nil {
return nil, err
}
an.detailsTmpl, err = html.New("details").Funcs(html.FuncMap{
"json": func(v interface{}) html.JS {
a, _ := json.Marshal(v)
return html.JS(a)
},
}).Parse(n.Details)
if err != nil {
return nil, err
}
// Construct alert handlers
an.handlers = make([]AlertHandler, 0)
for _, post := range n.PostHandlers {
post := post
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePost(post, ad) })
}
for _, email := range n.EmailHandlers {
email := email
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleEmail(email, ad) })
}
if len(n.EmailHandlers) == 0 && (et.tm.SMTPService != nil && et.tm.SMTPService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleEmail(&pipeline.EmailHandler{}, ad) })
}
// If email has been configured globally only send state changes.
if et.tm.SMTPService != nil && et.tm.SMTPService.Global() {
n.IsStateChangesOnly = true
}
for _, exec := range n.ExecHandlers {
exec := exec
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleExec(exec, ad) })
}
for _, log := range n.LogHandlers {
log := log
if !path.IsAbs(log.FilePath) {
return nil, fmt.Errorf("alert log path must be absolute: %s is not absolute", log.FilePath)
}
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleLog(log, ad) })
}
for _, vo := range n.VictorOpsHandlers {
vo := vo
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleVictorOps(vo, ad) })
}
if len(n.VictorOpsHandlers) == 0 && (et.tm.VictorOpsService != nil && et.tm.VictorOpsService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleVictorOps(&pipeline.VictorOpsHandler{}, ad) })
}
for _, pd := range n.PagerDutyHandlers {
pd := pd
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePagerDuty(pd, ad) })
}
if len(n.PagerDutyHandlers) == 0 && (et.tm.PagerDutyService != nil && et.tm.PagerDutyService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handlePagerDuty(&pipeline.PagerDutyHandler{}, ad) })
}
for _, sensu := range n.SensuHandlers {
sensu := sensu
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleSensu(sensu, ad) })
}
for _, slack := range n.SlackHandlers {
slack := slack
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleSlack(slack, ad) })
}
if len(n.SlackHandlers) == 0 && (et.tm.SlackService != nil && et.tm.SlackService.Global()) {
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleSlack(&pipeline.SlackHandler{}, ad) })
}
// If slack has been configured globally only send state changes.
if et.tm.SlackService != nil && et.tm.SlackService.Global() {
n.IsStateChangesOnly = true
}
for _, hipchat := range n.HipChatHandlers {
hipchat := hipchat
an.handlers = append(an.handlers, func(ad *AlertData) { an.handleHipChat(hipchat, ad) })
}
if len(n.HipChatHandlers) == 0 && (et.tm.HipChatService != nil && et.tm.HipChatService.Global()) {
//.........這裏部分代碼省略.........