45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package notify
|
|
|
|
import (
|
|
"time"
|
|
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
// DefaultTimeFormat 定义了所有通知中统一使用的时间格式。
|
|
const DefaultTimeFormat = "2006-01-02 15:04:05"
|
|
|
|
// NotifierType 定义了通知器的类型。
|
|
type NotifierType string
|
|
|
|
const (
|
|
// NotifierTypeSMTP 表示 SMTP 邮件通知器。
|
|
NotifierTypeSMTP NotifierType = "smtp"
|
|
// NotifierTypeWeChat 表示企业微信通知器。
|
|
NotifierTypeWeChat NotifierType = "wechat"
|
|
// NotifierTypeLark 表示飞书通知器。
|
|
NotifierTypeLark NotifierType = "lark"
|
|
// NotifierTypeLog 表示日志通知器,作为最终的告警记录渠道。
|
|
NotifierTypeLog NotifierType = "log"
|
|
)
|
|
|
|
// AlarmContent 定义了通知的内容
|
|
type AlarmContent struct {
|
|
// 通知标题
|
|
Title string
|
|
// 通知信息
|
|
Message string
|
|
// 通知级别
|
|
Level zapcore.Level
|
|
// 通知时间
|
|
Timestamp time.Time
|
|
}
|
|
|
|
// Notifier 定义了通知发送器的接口
|
|
type Notifier interface {
|
|
// Send 发送通知
|
|
Send(content AlarmContent, toAddr string) error
|
|
// Type 返回通知器的类型
|
|
Type() NotifierType
|
|
}
|