187 lines
5.2 KiB
Go
187 lines
5.2 KiB
Go
|
package monitor
|
|||
|
|
|||
|
const (
|
|||
|
// RedisPrefix 参数:business。参数1:bid;参数2:监控ID
|
|||
|
RedisPrefix = "monitor_stats_%d"
|
|||
|
// RedisDelArcInfo 稿件删除监控key
|
|||
|
RedisDelArcInfo = "monitor_stats_del_arc"
|
|||
|
// BusVideo 视频业务
|
|||
|
BusVideo = 1
|
|||
|
// BusArc 稿件业务
|
|||
|
BusArc = 2
|
|||
|
|
|||
|
// NotifyTypeEmail 邮件通知
|
|||
|
NotifyTypeEmail = 1
|
|||
|
// NotityTypeSms 短信通知
|
|||
|
NotityTypeSms = 2
|
|||
|
|
|||
|
// 稿件业务常量
|
|||
|
// ArchiveBitPGC 稿件PGC属性位
|
|||
|
ArchiveBitPGC = 9
|
|||
|
// ArchiveStateDel 稿件删除状态
|
|||
|
ArchiveStateDel = -100
|
|||
|
// ArchiveOriginal 自制稿件
|
|||
|
ArchiveOriginal = 1
|
|||
|
|
|||
|
// RuleHighUpDelArc 高能联盟UP主大量删除稿件监控
|
|||
|
RuleHighUpDelArc = 1
|
|||
|
// RuleFamUpDelArc 大UP主大量删除稿件监控
|
|||
|
RuleFamUpDelArc = 17
|
|||
|
|
|||
|
// CompGT 大于
|
|||
|
CompGT = ">"
|
|||
|
// CompLT 小于
|
|||
|
CompLT = "<"
|
|||
|
// CompGET 大于等于
|
|||
|
CompGET = ">="
|
|||
|
// CompLET 小于等于
|
|||
|
CompLET = "<="
|
|||
|
// CompNE 不等于
|
|||
|
CompNE = "!="
|
|||
|
// CompE 等于
|
|||
|
CompE = "="
|
|||
|
)
|
|||
|
|
|||
|
var (
|
|||
|
// SpecialTypeIDs 特殊分区(变更非常不频繁)
|
|||
|
SpecialTypeIDs = map[int64]int8{
|
|||
|
15: 1, 34: 1, 32: 1, 82: 1, 33: 1, 83: 1, 145: 1, 146: 1,
|
|||
|
147: 1, 153: 1, 185: 1, 186: 1, 187: 1, 37: 1, 178: 1, 179: 1,
|
|||
|
180: 1, 128: 1, 85: 1, 86: 1, 183: 1,
|
|||
|
}
|
|||
|
)
|
|||
|
|
|||
|
// BinlogArchive 稿件 binlog 结构
|
|||
|
type BinlogArchive struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
State int64 `json:"state"`
|
|||
|
Round int64 `json:"round"`
|
|||
|
MID int64 `json:"mid"`
|
|||
|
Attr int64 `json:"attribute"`
|
|||
|
TypeID int64 `json:"typeid"`
|
|||
|
IsSpecTID int8 `json:"is_special_tid"`
|
|||
|
HumanRank int `json:"humanrank"`
|
|||
|
Duration int `json:"duration"`
|
|||
|
Desc string `json:"desc"`
|
|||
|
Title string `json:"title"`
|
|||
|
Cover string `json:"cover"`
|
|||
|
Content string `json:"content"`
|
|||
|
Tag string `json:"tag"`
|
|||
|
Copyright int8 `json:"copyright"`
|
|||
|
AreaLimit int8 `json:"arealimit"`
|
|||
|
Author string `json:"author"`
|
|||
|
Access int `json:"access"`
|
|||
|
Forward int `json:"forward"`
|
|||
|
PubTime string `json:"pubtime"`
|
|||
|
Reason string `json:"reject_reason"`
|
|||
|
CTime string `json:"ctime"`
|
|||
|
MTime string `json:"mtime"`
|
|||
|
PTime string `json:"ptime"`
|
|||
|
Addit *ArchiveAddit `json:"_"`
|
|||
|
}
|
|||
|
|
|||
|
// BinlogVideo 视频binlog结构
|
|||
|
type BinlogVideo struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
Filename string `json:"filename"`
|
|||
|
Cid int64 `json:"cid"`
|
|||
|
Aid int64 `json:"aid"`
|
|||
|
Title string `json:"eptitle"`
|
|||
|
Desc string `json:"description"`
|
|||
|
SrcType string `json:"src_type"`
|
|||
|
Duration int64 `json:"duration"`
|
|||
|
Filesize int64 `json:"filesize"`
|
|||
|
Resolutions string `json:"resolutions"`
|
|||
|
Playurl string `json:"playurl"`
|
|||
|
FailCode int8 `json:"failinfo"`
|
|||
|
Index int `json:"index_order"`
|
|||
|
Attribute int32 `json:"attribute"`
|
|||
|
XcodeState int8 `json:"xcode_state"`
|
|||
|
State int8 `json:"state"`
|
|||
|
Status int16 `json:"status"`
|
|||
|
CTime string `json:"ctime"`
|
|||
|
MTime string `json:"mtime"`
|
|||
|
}
|
|||
|
|
|||
|
// ArchiveAddit 稿件附加属性
|
|||
|
type ArchiveAddit struct {
|
|||
|
Aid int64 `json:"aid"`
|
|||
|
MissionID int64 `json:"mission_id"`
|
|||
|
UpFrom int8 `json:"up_from"`
|
|||
|
FromIP int64 `json:"from_ip"`
|
|||
|
IPv6 []byte `json:"ipv6"`
|
|||
|
Source string `json:"source"`
|
|||
|
OrderID int64 `json:"order_id"`
|
|||
|
RecheckReason string `json:"recheck_reason"`
|
|||
|
RedirectURL string `json:"redirect_url"`
|
|||
|
FlowID int64 `json:"flow_id"`
|
|||
|
Advertiser string `json:"advertiser"`
|
|||
|
FlowRemark string `json:"flow_remark"`
|
|||
|
DescFormatID int64 `json:"desc_format_id"`
|
|||
|
Desc string `json:"desc"`
|
|||
|
Dynamic string `json:"dynamic"`
|
|||
|
}
|
|||
|
|
|||
|
// RuleResultRes 监控结果
|
|||
|
type RuleResultRes struct {
|
|||
|
Code int `json:"code"`
|
|||
|
Data []*RuleResultData `json:"data"`
|
|||
|
}
|
|||
|
|
|||
|
// RuleResultData 监控结果
|
|||
|
type RuleResultData struct {
|
|||
|
Rule *Rule `json:"rule"`
|
|||
|
Stats *Stats `json:"stats"`
|
|||
|
}
|
|||
|
|
|||
|
// Rule 监控规则信息
|
|||
|
type Rule struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
Type int8 `json:"type"`
|
|||
|
BID int8 `json:"bid"`
|
|||
|
Name string `json:"name"`
|
|||
|
State int8 `json:"state"`
|
|||
|
STime string `json:"stime"`
|
|||
|
ETime string `json:"etime"`
|
|||
|
CTime string `json:"ctime"`
|
|||
|
MTime string `json:"mtime"`
|
|||
|
UID int64 `json:"uid"`
|
|||
|
RuleConf *RuleConf `json:"rule"`
|
|||
|
}
|
|||
|
|
|||
|
// RuleConf 监控方案配置结构体
|
|||
|
type RuleConf struct {
|
|||
|
Name string `json:"name"`
|
|||
|
MoniCdt map[string]struct { //监控方案的监控条件
|
|||
|
Comp string `json:"comparison"`
|
|||
|
} `json:"moni_cdt"`
|
|||
|
NotifyCdt map[string]struct { //达到发送通知的条件
|
|||
|
Comp string `json:"comparison"`
|
|||
|
Value int64 `json:"value"`
|
|||
|
} `json:"notify_cdt"`
|
|||
|
Notify struct { //通知类型配置
|
|||
|
Way int8 `json:"way"`
|
|||
|
Member []string `json:"member"`
|
|||
|
} `json:"notify"`
|
|||
|
}
|
|||
|
|
|||
|
// Stats 监控统计
|
|||
|
type Stats struct {
|
|||
|
TotalCount int `json:"total_count"`
|
|||
|
MoniCount int `json:"moni_count"`
|
|||
|
MaxTime int `json:"max_time"`
|
|||
|
}
|
|||
|
|
|||
|
// FieldsConf 监控字段配置
|
|||
|
type FieldsConf struct {
|
|||
|
Comparison string
|
|||
|
}
|
|||
|
|
|||
|
// DelArcInfo UP主删稿信息
|
|||
|
type DelArcInfo struct {
|
|||
|
AID int64 `json:"aid"`
|
|||
|
MID int64 `json:"mid"`
|
|||
|
Time string `json:"time"`
|
|||
|
Title string `json:"title"`
|
|||
|
}
|