节点健康检查失败时增加节点名称和节点IP提示

This commit is contained in:
GoEdgeLab
2023-11-03 09:54:42 +08:00
parent 9328328095
commit 37caaf9cbc
4 changed files with 34 additions and 19 deletions

View File

@@ -111,8 +111,11 @@ func (this *MessageDAO) FindEnabledMessage(tx *dbs.Tx, id int64) (*Message, erro
} }
// CreateClusterMessage 创建集群消息 // CreateClusterMessage 创建集群消息
func (this *MessageDAO) CreateClusterMessage(tx *dbs.Tx, role string, clusterId int64, messageType MessageType, level string, subject string, body string, paramsJSON []byte) error { func (this *MessageDAO) CreateClusterMessage(tx *dbs.Tx, role string, clusterId int64, messageType MessageType, level string, subject string, shortBody string, body string, paramsJSON []byte) error {
_, err := this.createMessage(tx, role, clusterId, 0, messageType, level, subject, body, paramsJSON) if len(shortBody) == 0 {
shortBody = body
}
_, err := this.createMessage(tx, role, clusterId, 0, messageType, level, subject, shortBody, paramsJSON)
if err != nil { if err != nil {
return err return err
} }

View File

@@ -12,7 +12,7 @@ func TestMessageDAO_CreateClusterMessage(t *testing.T) {
var tx *dbs.Tx var tx *dbs.Tx
dao := NewMessageDAO() dao := NewMessageDAO()
err := dao.CreateClusterMessage(tx, nodeconfigs.NodeRoleNode, 1, "test", "error", "123", "123", []byte("456")) err := dao.CreateClusterMessage(tx, nodeconfigs.NodeRoleNode, 1, "test", "error", "123", "123", "123", []byte("456"))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@@ -8,20 +8,6 @@ import (
"testing" "testing"
) )
func TestMessageTaskDAO_FindSendingMessageTasks(t *testing.T) {
dbs.NotifyReady()
var tx *dbs.Tx
tasks, err := models.NewMessageTaskDAO().FindSendingMessageTasks(tx, 100)
if err != nil {
t.Fatal(err)
}
t.Log(len(tasks), "tasks")
for _, task := range tasks {
t.Log("task:", task.Id, "recipient:", task.RecipientId)
}
}
func TestMessageTaskDAO_CleanExpiredMessageTasks(t *testing.T) { func TestMessageTaskDAO_CleanExpiredMessageTasks(t *testing.T) {
var dao = models.NewMessageTaskDAO() var dao = models.NewMessageTaskDAO()
var tx *dbs.Tx var tx *dbs.Tx

View File

@@ -10,6 +10,8 @@ import (
"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
"strings"
"time" "time"
) )
@@ -127,8 +129,32 @@ func (this *HealthCheckClusterTask) Loop() error {
if err != nil { if err != nil {
return err return err
} }
var message = "有" + numberutils.FormatInt(len(failedResults)) + "个节点IP在健康检查中出现问题" var subject = "有" + numberutils.FormatInt(len(failedResults)) + "个节点IP在健康检查中出现问题"
err = models.NewMessageDAO().CreateClusterMessage(nil, nodeconfigs.NodeRoleNode, this.clusterId, models.MessageTypeHealthCheckFailed, models.MessageLevelError, message, message, failedResultsJSON) var message = "有" + numberutils.FormatInt(len(failedResults)) + "个节点IP在健康检查中出现问题"
var failedDescriptions = []string{}
var failedIndex int
for _, result := range results {
if result.IsOk || result.Node == nil {
continue
}
failedIndex++
failedDescriptions = append(failedDescriptions, "节点"+types.String(failedIndex)+""+result.Node.Name+"IP"+result.NodeAddr)
}
const maxNodeDescriptions = 10
var isOverMax = false
if len(failedDescriptions) > maxNodeDescriptions {
failedDescriptions = failedDescriptions[:maxNodeDescriptions]
isOverMax = true
}
message += strings.Join(failedDescriptions, "")
if isOverMax {
message += " ..."
} else {
message += "。"
}
err = models.NewMessageDAO().CreateClusterMessage(nil, nodeconfigs.NodeRoleNode, this.clusterId, models.MessageTypeHealthCheckFailed, models.MessageLevelError, subject, subject, message, failedResultsJSON)
if err != nil { if err != nil {
return err return err
} }