nsq.go 748 B

123456789101112131415161718192021222324252627282930313233343536
  1. package main
  2. import (
  3. "encoding/json"
  4. "log"
  5. "data_mgo_to_tidb_project/config"
  6. "bp.jydev.jianyu360.cn/BP/jynsq/gonsq"
  7. )
  8. //异常告警
  9. type AlertNsq struct {
  10. Addr string
  11. Toppic string
  12. Id string //用于标识这个告警分组,及告警方式、告警人
  13. }
  14. var AlertRemind AlertNsq
  15. //Alert 异常告警通知
  16. func Alert(msg string) {
  17. //自定义需要的字段
  18. errMap := map[string]interface{}{
  19. "异常": msg,
  20. }
  21. //nsq
  22. m := &gonsq.Msg{AlertRemind.Id, config.Conf.Alarm.Title, config.Conf.Alarm.Text, errMap}
  23. bs, _ := json.Marshal(m)
  24. p, _ := gonsq.NewProducer(AlertRemind.Addr, AlertRemind.Toppic, false) //测试环境地址
  25. err := p.Publish(bs)
  26. defer p.P.Stop()
  27. if err != nil {
  28. log.Println("nsq连接失败")
  29. }
  30. }