:::info 支持,默认支持的是 邮件告警,使用前需要 配置发送人信息 。 :::
配置邮件发送人信息

设置支持告警提醒
// see internal/router/router.go...mux, err := core.New(logger,...core.WithAlertNotify(alert.NotifyHandler(logger)),...)// core.WithAlertNotify() 表示已设置告警提醒// 告警提醒包括:// 1. 发生 panic 异常时,进行告警提醒;// 2. 发生已配置告警的 error 时,进行告警提醒;// alert.NotifyHandler 表示具体告警通知的实现,目前是邮件告警通知
告警逻辑
// see internal/alert/alert.go// NotifyHandler 告警通知func NotifyHandler(logger *zap.Logger) func(msg *proposal.AlertMessage) {if logger == nil {panic("logger required")}return func(msg *proposal.AlertMessage) {cfg := configs.Get().Mailif cfg.Host == "" || cfg.Port == 0 || cfg.User == "" || cfg.Pass == "" || cfg.To == "" {logger.Error("Mail config error")return}subject, body, err := newHTMLEmail(msg.Method,msg.HOST,msg.URI,msg.TraceID,msg.ErrorMessage,msg.ErrorStack,)if err != nil {logger.Error("email template error", zap.Error(err))return}options := &mail.Options{MailHost: cfg.Host,MailPort: cfg.Port,MailUser: cfg.User,MailPass: cfg.Pass,MailTo: cfg.To,Subject: subject,Body: body,}if err := mail.Send(options); err != nil {logger.Error("发送告警通知邮件失败", zap.Error(errors.WithStack(err)))}return}}
邮件告警模板
如何设置其他方式的告警?
编辑 alert.NotifyHandler 方法即可。
