This is an automated email from the ASF dual-hosted git repository.

zhongxjian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-kubernetes.git


The following commit(s) were added to refs/heads/master by this push:
     new 7122f53f [horus] Self-recovering function features (#351)
7122f53f is described below

commit 7122f53ff4de8cb1b98503a03705a21146531990
Author: mfordjody <[email protected]>
AuthorDate: Tue Sep 17 18:55:40 2024 +0800

    [horus] Self-recovering function features (#351)
---
 app/horus/core/horuser/modular.go  |  7 ++++---
 app/horus/core/horuser/recovery.go |  1 -
 deploy/horus/horus.yaml            | 12 ++++++------
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/app/horus/core/horuser/modular.go 
b/app/horus/core/horuser/modular.go
index bd3445d4..1a77a552 100644
--- a/app/horus/core/horuser/modular.go
+++ b/app/horus/core/horuser/modular.go
@@ -50,7 +50,8 @@ func (h *Horuser) CustomizeModular(ctx context.Context) {
 
 func (h *Horuser) CustomizeModularOnCluster(clusterName, addr string) {
        klog.Infof("CustomizeModularOnCluster Start clusterName:%v", 
clusterName)
-       for moduleName, ql := range h.cc.CustomModular.CheckQL {
+       for moduleName, checkql := range h.cc.CustomModular.CheckQL {
+               ql := checkql
                vecs, err := h.InstantQuery(addr, ql, clusterName, 
h.cc.CustomModular.PromQueryTimeSecond)
                if err != nil {
                        klog.Errorf("CustomizeModularOnCluster InstantQuery 
err:%v", err)
@@ -79,7 +80,7 @@ func (h *Horuser) CustomizeModularOnCluster(clusterName, addr 
string) {
 func (h *Horuser) CustomizeModularNodes(clusterName, moduleName, nodeName, ip 
string) {
        today := time.Now().Format("2006-01-02")
 
-       recoveryQL := h.cc.CustomModular.RecoveryQL[moduleName]
+       recoveryQL := fmt.Sprintf(h.cc.CustomModular.RecoveryQL[moduleName], 
nodeName)
 
        data, err := db.GetDailyLimitNodeDataInfoDate(today, moduleName, 
clusterName)
        if err != nil {
@@ -90,7 +91,7 @@ func (h *Horuser) CustomizeModularNodes(clusterName, 
moduleName, nodeName, ip st
 
        dailyLimit := h.cc.CustomModular.CordonDailyLimit[moduleName]
        if len(data) > dailyLimit {
-               msg := fmt.Sprintf("【日期:%v】 【集群:%v\n】 【模块今日 Cordon 节点数: %v】\n 
【已达到今日上限: %v】\n [节点:%v]",
+               msg := fmt.Sprintf("【日期:%v】 【集群:%v\n】 【模块今日 Cordon 节点数: %v】\n 
【已达到今日上限: %v】\n 【节点:%v】",
                        data, clusterName, moduleName, dailyLimit, nodeName)
                alert.DingTalkSend(h.cc.CustomModular.DingTalk, msg)
                return
diff --git a/app/horus/core/horuser/recovery.go 
b/app/horus/core/horuser/recovery.go
index 5f7fd47d..515cf2d8 100644
--- a/app/horus/core/horuser/recovery.go
+++ b/app/horus/core/horuser/recovery.go
@@ -60,7 +60,6 @@ func (h *Horuser) recoveryNodes(n *db.NodeDataInfo) {
                klog.Infof("clusterName:%v nodeName:%v", n.ClusterName, 
n.NodeName)
                return
        }
-
        vecs, err := h.InstantQuery(addr, n.RecoveryQL, n.ClusterName, 
h.cc.NodeRecovery.PromQueryTimeSecond)
        if err != nil {
                klog.Errorf("recoveryNodes InstantQuery err:%v ql:%v", err, 
n.RecoveryQL)
diff --git a/deploy/horus/horus.yaml b/deploy/horus/horus.yaml
index dd042b01..6884df57 100644
--- a/deploy/horus/horus.yaml
+++ b/deploy/horus/horus.yaml
@@ -42,7 +42,7 @@ nodeRecovery:
   enabled: true
   dayNumber: 1
   checkIntervalSecond: 5
-  promQueryTimeSecond: 10
+  promQueryTimeSecond: 60
   dingTalk:
     webhookUrl: 
"https://oapi.dingtalk.com/robot/send?access_token=37f8891e60e524013275cc01efafdb5976b81ef7269ce271b769bcd025826c12";
     title: "horus 通知"
@@ -50,22 +50,22 @@ nodeRecovery:
       - 15000000
 
 customModular:
-  enabled: false
+  enabled: true
   cordonDailyLimit:
     filesystem_readonly: 5
     arp_entries: 5
   checkQL:
     filesystem_readonly: |-
-      node_filesystem_readonly{mountpoint="/"} == 1
+      node_filesystem_readonly{mountpoint="/"} != 1
     arp_entries: |-
       node_arp_entries{device="ens160"} > 2
   recoveryQL:
     filesystem_readonly: |-
-      node_filesystem_readonly{mountpoint="/"} == 0
+      node_filesystem_readonly{mountpoint="/",node="%s"} == 0
     arp_entries: |-
-      node_arp_entries{device="ens160"} > 2
+      node_arp_entries{device="ens160",node="%s"} > 2
   checkIntervalSecond: 5
-  promQueryTimeSecond: 10
+  promQueryTimeSecond: 60
   kubeMultiple:
     cluster: config.1
   dingTalk:

Reply via email to