mirror of https://github.com/shunfei/cronsun
Improve node warning message
parent
75c9a83b13
commit
75b49bddae
5
node.go
5
node.go
|
@ -92,6 +92,11 @@ func GetNodesBy(query interface{}) (nodes []*Node, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetNodesByID(id string) (node *Node, err error) {
|
||||||
|
err = mgoDB.FindId(Coll_Node, id, &node)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func RemoveNode(query interface{}) error {
|
func RemoveNode(query interface{}) error {
|
||||||
return mgoDB.WithC(Coll_Node, func(c *mgo.Collection) error {
|
return mgoDB.WithC(Coll_Node, func(c *mgo.Collection) error {
|
||||||
return c.Remove(query)
|
return c.Remove(query)
|
||||||
|
|
19
noticer.go
19
noticer.go
|
@ -169,28 +169,25 @@ func StartNoticer(n Noticer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func monitorNodes(n Noticer) {
|
func monitorNodes(n Noticer) {
|
||||||
var (
|
|
||||||
err error
|
|
||||||
ok bool
|
|
||||||
id string
|
|
||||||
)
|
|
||||||
rch := WatchNode()
|
rch := WatchNode()
|
||||||
|
|
||||||
for wresp := range rch {
|
for wresp := range rch {
|
||||||
for _, ev := range wresp.Events {
|
for _, ev := range wresp.Events {
|
||||||
switch {
|
switch {
|
||||||
case ev.Type == client.EventTypeDelete:
|
case ev.Type == client.EventTypeDelete:
|
||||||
id = GetIDFromKey(string(ev.Kv.Key))
|
id := GetIDFromKey(string(ev.Kv.Key))
|
||||||
ok, err = ISNodeAlive(id)
|
log.Errorf("cronnode DELETE event detected, node UUID: %s", id)
|
||||||
|
|
||||||
|
node, err := GetNodesByID(id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warnf("query node[%s] err: %s", id, err.Error())
|
log.Warnf("failed to fetch node[%s] from mongodb: %s", id, err.Error())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if ok {
|
if node.Alived {
|
||||||
n.Send(&Message{
|
n.Send(&Message{
|
||||||
Subject: "Node[" + id + "] break away cluster, this happed at " + time.Now().Format(time.RFC3339),
|
Subject: fmt.Sprintf("Node[%s] break away cluster at %s", node.Hostname, time.Now().Format(time.RFC3339)),
|
||||||
Body: "Node breaked away cluster, this might happed when node crash or network problems.",
|
Body: fmt.Sprintf("Node breaked away cluster, this might happened when node crash or network problems.\nUUID: %s\nHostname: %s\nIP: %s\n", id, node.Hostname, node.IP),
|
||||||
To: conf.Config.Mail.To,
|
To: conf.Config.Mail.To,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue