Documentation ¶
Index ¶
- func CommAlertToFeishuPostTemplateV1(alertComm *CommonAlert) *string
- func CopyMap(oldMap map[string]string) (newMap map[string]string)
- func ExceptLabel(labelMap map[string]string, cmdbType string) map[string]string
- func GetLevel(level string) string
- func GetNow() string
- func GetType(cmdbtype string) string
- func InitCommonAlertTemplate()
- func InitKeysMap()
- func InitTemplate()
- func KeysMap(key string) string
- func StampStr2Str(ss string) string
- func Time2Str(alertTime time.Time) string
- type AlertCache
- type AlertInfo
- type AlertNocache
- type AlertPostCommApi
- type CommonAlert
- type EventAlert
- type GrafanaEvalMatch
- type GrafanaWebhook
- type HandleInfo
- type HashInfo
- type ProjectInfo
- type PromeAlerts
- type Report
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CommAlertToFeishuPostTemplateV1 ¶
func CommAlertToFeishuPostTemplateV1(alertComm *CommonAlert) *string
func InitCommonAlertTemplate ¶
func InitCommonAlertTemplate()
func InitKeysMap ¶
func InitKeysMap()
func InitTemplate ¶
func InitTemplate()
func StampStr2Str ¶
Types ¶
type AlertCache ¶
type AlertCache struct { StartTime string `json:"StartTime"` // "1627639497" 秒级时间戳,表示故障开始时间 当AlertStatus为problem时生效 //当无该字段时,或故障未恢复且时间改变时,沿用老时间 Recoverable string `json:"Recoverable"` // true/false 是否发送恢复通知,若调用方在故障恢复时不调用此接口,则配置为false ,避免因未接收到恢复而导致告警升级 AlertStatus string `json:"AlertStatus"` // firing/resovled 告警状态,当Recoverable为true时生效,标记当前告警为故障或恢复 }
type AlertInfo ¶
type AlertInfo struct { AlertCache ObjectData map[string]interface{} `json:"ObjectData"` // 告警对象唯一标识,同一项目下唯一,用于告警抑制,分组,通知策略配置或告警模板定制 例如 {"hostname":"aliyun-blackbox-01","ip":"10.59.63.4","supplier":"ucloud"} AlertData map[string]interface{} `json:"AlertData"` // 告警事件唯一标识,同一项目下唯一,用于告警抑制,分组,通知策略配置或告警模板定制 例如 {"alertname":"CPU使用率达到90%"} NotifyData map[string]interface{} `json:"NotifyData"` // 告警通知字段 当前支持飞书(群组key为groups,值需要服务端提供,个人使用emails或mobiles,飞书关联联系方式) 格式为{"flybook":{"groups":["groupname"],"mobiles":["13917104943"],"emails":["liaopeng@52tt.com"]}} Severity string `json:"Severity"` //告警等级 "disaster/critical/warning" EndTime string `json:"EndTime"` // "1627639497" 秒级时间戳,表示故障恢复时间 当AlertStatus为ok时生效 AlertText string `json:"AlertText"` // 告警文本 "HBase_rcmd_core1(10.10.113.160:59100) 内存可用率是6.917% , 可用内存是 1.615GiB" SrcData map[string]interface{} `json:"SrcData"` // 原始告警数据 例如 {"alertname":"AggregatedAPIDown","cluster":"prod-bj2-02","env":"production","name":"v1beta1.metrics.k8s.io","namespace":"default","prometheus":"monitoring/prometheus-quicksilver","severity":"warning"} }
告警信息
func (AlertInfo) GetFlybookGroups ¶
func (ai AlertInfo) GetFlybookGroups() []interface{}
type AlertNocache ¶
type AlertNocache struct {
HandleStatus string `json:"HandleStatus"` // 新告警 (初次告警) 未确认 (确认) 处理中 (恢复) 待关闭 与mongodb状态对应
}
type AlertPostCommApi ¶
type AlertPostCommApi struct { Title string `json:"title,omitempty"` Msg string `json:"msg"` StarTs string `json:"startsTs,omitempty"` EndTs string `json:"endTs,omitempty"` Labels template.KV `json:"labels,omitempty"` Values map[string]float64 `json:"values,omitempty"` }
// KV is a set of key/value string pairs. type KV map[string]string
// Remove returns a copy of the key/value set without the given keys.
func (kv KV) Remove(keys []string) KV { keySet := make(map[string]struct{}, len(keys)) for _, k := range keys { keySet[k] = struct{}{} } res := KV{} for k, v := range kv { if _, ok := keySet[k]; !ok { res[k] = v } } return res }
func (kv KV) Add(keys map[string]string) KV { res := KV{} for k, v := range kv { res[k] = v } for k, v := range keys { res[k] = v } return res }
func PromeAlertToAlertPostCommApi ¶
func PromeAlertToAlertPostCommApi(alert alertTemplate.Alert, zone string) AlertPostCommApi
func (*AlertPostCommApi) ReportCC ¶
func (api *AlertPostCommApi) ReportCC()
type GrafanaEvalMatch ¶
type GrafanaWebhook ¶
type GrafanaWebhook struct { Title string `json:"title"` State string `json:"state"` Msg string `json:"message"` EvalMatches []*GrafanaEvalMatch `json:"evalMatches"` }
func (*GrafanaWebhook) GrafanaWebhookToAlertPostCommApi ¶
func (alert *GrafanaWebhook) GrafanaWebhookToAlertPostCommApi(zone string) []*AlertPostCommApi
type HashInfo ¶
type HashInfo struct { AlertId string //告警唯一ID ObjectId string //对象唯一ID GlobalId string //全局唯一ID alerttype-projectid-severity-alertId-objectId }
对象与告警唯一id
type ProjectInfo ¶
type ProjectInfo struct { ProjectType string //告警接入类型 Alertmanager,Ucloud,Aliyun,Huaweiyun,Grafana,Callback,Event(自定义事件) ProjectId string //项目ID 用于识别同一告警类型下的不同通道,比如两个不同的prometheus集群,当需要认证时,该值作为认证ID }
项目信息
type PromeAlerts ¶
type PromeAlerts alertTemplate.Data
func (*PromeAlerts) Firing ¶
func (p *PromeAlerts) Firing(zone string) []AlertPostCommApi
func (*PromeAlerts) Resolved ¶
func (p *PromeAlerts) Resolved(zone string) []AlertPostCommApi
Click to show internal directories.
Click to hide internal directories.