本文整理汇总了Golang中github.com/open-falcon/common/model.Event.Priority方法的典型用法代码示例。如果您正苦于以下问题:Golang Event.Priority方法的具体用法?Golang Event.Priority怎么用?Golang Event.Priority使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/open-falcon/common/model.Event
的用法示例。
在下文中一共展示了Event.Priority方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Put
func (this *SafeEvents) Put(event *model.Event) {
if event.Status == "OK" {
this.Delete(event.Id)
return
}
dto := &EventDto{}
dto.Id = event.Id
dto.Endpoint = event.Endpoint
dto.Metric = event.Metric()
dto.Counter = event.Counter()
dto.Func = event.Func()
dto.LeftValue = utils.ReadableFloat(event.LeftValue)
dto.Operator = event.Operator()
dto.RightValue = utils.ReadableFloat(event.RightValue())
dto.Note = event.Note()
dto.MaxStep = event.MaxStep()
dto.CurrentStep = event.CurrentStep
dto.Priority = event.Priority()
dto.Status = event.Status
dto.Timestamp = event.EventTime
dto.ExpressionId = event.ExpressionId()
dto.StrategyId = event.StrategyId()
dto.TemplateId = event.TplId()
dto.Link = Link(event)
this.Lock()
defer this.Unlock()
this.M[dto.Id] = dto
}
示例2: consumeEvents
// 处理事件(去掉了优先级区分)
func consumeEvents(event *model.Event, action *api.Action) {
if action.Uic == "" {
return
}
//获取联系方式
phones, mails, ims := api.ParseTeams(action.Uic)
smsContent := GenerateSmsContent(event)
mailContent := GenerateMailContent(event)
imContent := GenerateIMSmsContent(event)
phoneContent := GeneratePhoneContent(event)
// level 0 will have phone,im,mail
// level 1-2 will have im,mail
// level 3-6 will only have im
if event.Priority() == 0 {
redis.WritePhone(phones, phoneContent)
}
if event.Priority() < 3 {
redis.WriteMail(mails, smsContent, mailContent)
}
redis.WriteIMSms(ims, imContent)
}
示例3: ParseUserMail
func ParseUserMail(event *model.Event, action *api.Action) {
userMap := api.GetUsers(action.Uic)
metric := event.Metric()
subject := GenerateSmsContent(event)
content := GenerateMailContent(event)
status := event.Status
priority := event.Priority()
queue := g.Config().Redis.UserMailQueue
rc := g.RedisConnPool.Get()
defer rc.Close()
for _, user := range userMap {
dto := MailDto{
Priority: priority,
Metric: metric,
Subject: subject,
Content: content,
Email: user.Email,
Status: status,
}
bs, err := json.Marshal(dto)
if err != nil {
log.Println("json marshal MailDto fail:", err)
continue
}
_, err = rc.Do("LPUSH", queue, string(bs))
if err != nil {
log.Println("LPUSH redis", queue, "fail:", err, "dto:", string(bs))
}
}
}
示例4: consumeLowEvents
// 低优先级的做报警合并
func consumeLowEvents(event *model.Event, action *api.Action) {
if action.Uic == "" {
return
}
if event.Priority() < 3 {
ParseUserSms(event, action)
}
ParseUserMail(event, action)
}
示例5: consumeHighEvents
// 高优先级的不做报警合并
func consumeHighEvents(event *model.Event, action *api.Action) {
if action.Uic == "" {
return
}
phones, mails := api.ParseTeams(action.Uic)
smsContent := GenerateSmsContent(event)
mailContent := GenerateMailContent(event)
if event.Priority() < 3 {
redis.WriteSms(phones, smsContent)
}
redis.WriteMail(mails, smsContent, mailContent)
}
示例6: sendEvent
func sendEvent(event *model.Event) {
// update last event
g.LastEvents.Set(event.Id, event)
bs, err := json.Marshal(event)
if err != nil {
log.Printf("json marshal event %v fail: %v", event, err)
return
}
// send to redis
redisKey := fmt.Sprintf(g.Config().Alarm.QueuePattern, event.Priority())
rc := g.RedisConnPool.Get()
defer rc.Close()
rc.Do("LPUSH", redisKey, string(bs))
}
示例7: BuildCommonSMSContent
func BuildCommonSMSContent(event *model.Event) string {
return fmt.Sprintf(
"[P%d][%s][%s][][%s %s %s %s %s%s%s][O%d %s]",
event.Priority(),
event.Status,
event.Endpoint,
event.Note(),
event.Func(),
event.Metric(),
utils.SortedTags(event.PushedTags),
utils.ReadableFloat(event.LeftValue),
event.Operator(),
utils.ReadableFloat(event.RightValue()),
event.CurrentStep,
event.FormattedTime(),
)
}
示例8: BuildCommonMailContent
func BuildCommonMailContent(event *model.Event) string {
link := g.Link(event)
return fmt.Sprintf(
"%s\r\nP%d\r\nEndpoint:%s\r\nMetric:%s\r\nTags:%s\r\n%s: %s%s%s\r\nNote:%s\r\nMax:%d, Current:%d\r\nTimestamp:%s\r\n%s\r\n",
event.Status,
event.Priority(),
event.Endpoint,
event.Metric(),
utils.SortedTags(event.PushedTags),
event.Func(),
utils.ReadableFloat(event.LeftValue),
event.Operator(),
utils.ReadableFloat(event.RightValue()),
event.Note(),
event.MaxStep(),
event.CurrentStep,
event.FormattedTime(),
link,
)
}
示例9: Callback
func Callback(event *model.Event, action *api.Action) string {
if action.Url == "" {
return "callback url is blank"
}
L := make([]string, 0)
if len(event.PushedTags) > 0 {
for k, v := range event.PushedTags {
L = append(L, fmt.Sprintf("%s:%s", k, v))
}
}
tags := ""
if len(L) > 0 {
tags = strings.Join(L, ",")
}
req := httplib.Get(action.Url).SetTimeout(3*time.Second, 20*time.Second)
req.Param("endpoint", event.Endpoint)
req.Param("metric", event.Metric())
req.Param("status", event.Status)
req.Param("step", fmt.Sprintf("%d", event.CurrentStep))
req.Param("priority", fmt.Sprintf("%d", event.Priority()))
req.Param("time", event.FormattedTime())
req.Param("tpl_id", fmt.Sprintf("%d", event.TplId()))
req.Param("exp_id", fmt.Sprintf("%d", event.ExpressionId()))
req.Param("stra_id", fmt.Sprintf("%d", event.StrategyId()))
req.Param("tags", tags)
resp, e := req.String()
success := "success"
if e != nil {
success = fmt.Sprintf("fail:%s", e.Error())
}
message := fmt.Sprintf("curl %s %s. resp: %s", action.Url, success, resp)
return message
}