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 5fef316f Additional node indicators (#430)
5fef316f is described below

commit 5fef316f1291ae8d175bbd574f5be6254c3d2e7a
Author: mfordjody <[email protected]>
AuthorDate: Sat Oct 5 13:24:04 2024 +0800

    Additional node indicators (#430)
---
 app/horus/base/db/db.go           | 58 +++++++++++++++++++--------------------
 app/horus/config.1                | 19 +++++++++++++
 app/horus/core/horuser/metrics.go | 53 +++++++++++++++++++++++++++++++++++
 3 files changed, 101 insertions(+), 29 deletions(-)

diff --git a/app/horus/base/db/db.go b/app/horus/base/db/db.go
index e7844c38..013edcff 100644
--- a/app/horus/base/db/db.go
+++ b/app/horus/base/db/db.go
@@ -25,38 +25,38 @@ import (
 )
 
 type NodeDataInfo struct {
-       Id              int64  `json:"id"`
-       NodeName        string `json:"node_name" xorm:"node_name"`
-       NodeIP          string `json:"node_ip" xorm:"node_ip"`
-       Sn              string `json:"sn"`
-       ClusterName     string `json:"cluster_name" xorm:"cluster_name"`
-       ModuleName      string `json:"module_name" xorm:"module_name"`
-       Reason          string `json:"reason"`
-       Restart         uint32 `json:"restart"`
-       Repair          uint32 `json:"repair"`
-       RepairTicketUrl string `json:"repair_ticket_url" 
xorm:"repair_ticket_url"`
-       FirstDate       string `json:"first_date" xorm:"first_date"`
-       CreateTime      string `json:"create_time" xorm:"create_time created"`
-       UpdateTime      string `json:"update_time" xorm:"update_time updated"`
-       RecoveryMark    int64  `json:"recovery_mark" xorm:"recovery_mark"`
-       RecoveryQL      string `json:"recovery_ql" xorm:"recovery_ql"`
+       Id              int64     `json:"id"`
+       NodeName        string    `json:"node_name" xorm:"node_name"`
+       NodeIP          string    `json:"node_ip" xorm:"node_ip"`
+       Sn              string    `json:"sn"`
+       ClusterName     string    `json:"cluster_name" xorm:"cluster_name"`
+       ModuleName      string    `json:"module_name" xorm:"module_name"`
+       Reason          string    `json:"reason"`
+       Restart         int       `json:"restart"`
+       Repair          int       `json:"repair"`
+       RepairTicketUrl string    `json:"repair_ticket_url" 
xorm:"repair_ticket_url"`
+       FirstDate       string    `json:"first_date" xorm:"first_date"`
+       CreateTime      time.Time `json:"create_time" xorm:"create_time 
created"`
+       UpdateTime      time.Time `json:"update_time" xorm:"update_time 
updated"`
+       RecoveryMark    int64     `json:"recovery_mark" xorm:"recovery_mark"`
+       RecoveryQL      string    `json:"recovery_ql" xorm:"recovery_ql"`
 }
 
 type PodDataInfo struct {
-       Id              int64  `json:"id"`
-       PodName         string `json:"pod_name" xorm:"pod_name"`
-       PodIP           string `json:"pod_ip" xorm:"pod_ip"`
-       Sn              string `json:"sn"`
-       NodeName        string `json:"node_name" xorm:"node_name"`
-       ClusterName     string `json:"cluster_name" xorm:"cluster_name"`
-       ModuleName      string `json:"module_name" xorm:"module_name"`
-       Reason          string `json:"reason"`
-       Restart         int32  `json:"restart"`
-       Repair          int32  `json:"repair"`
-       RepairTicketUrl string `json:"repair_ticket_url" 
xorm:"repair_ticket_url"`
-       FirstDate       string `json:"first_date" xorm:"first_date"`
-       CreateTime      string `json:"create_time" xorm:"create_time created"`
-       UpdateTime      string `json:"update_time" xorm:"update_time updated"`
+       Id              int64     `json:"id"`
+       PodName         string    `json:"pod_name" xorm:"pod_name"`
+       PodIP           string    `json:"pod_ip" xorm:"pod_ip"`
+       Sn              string    `json:"sn"`
+       NodeName        string    `json:"node_name" xorm:"node_name"`
+       ClusterName     string    `json:"cluster_name" xorm:"cluster_name"`
+       ModuleName      string    `json:"module_name" xorm:"module_name"`
+       Reason          string    `json:"reason"`
+       Restart         int       `json:"restart"`
+       Repair          int       `json:"repair"`
+       RepairTicketUrl string    `json:"repair_ticket_url" 
xorm:"repair_ticket_url"`
+       FirstDate       string    `json:"first_date" xorm:"first_date"`
+       CreateTime      time.Time `json:"create_time" xorm:"create_time 
created"`
+       UpdateTime      time.Time `json:"update_time" xorm:"update_time 
updated"`
 }
 
 var (
diff --git a/app/horus/config.1 b/app/horus/config.1
new file mode 100644
index 00000000..3f9124e3
--- /dev/null
+++ b/app/horus/config.1
@@ -0,0 +1,19 @@
+apiVersion: v1
+clusters:
+- cluster:
+    certificate-authority-data: 
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJWkw1eUxQOHlJeVl3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRFd01ESXdNek13TXpGYUZ3MHpOREE1TXpBd016TTFNekZhTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUUN5VXM2M3kzSVUvaHQrSEFOTVNmK0I0Nll3R1dXQzVvRS9wcHE1QzV2QTNiTXhxR3BVU2FPU3hQZXkKNEpiTVppQmtMSDVRV3RGVDUyc3p0a0pBamJUcnBMSEtMRmxMS1MxWjhMMmxiakdGQW56RUFvUmdm
 [...]
+    server: https://192.168.15.128:6443
+  name: kubernetes
+contexts:
+- context:
+    cluster: kubernetes
+    user: kubernetes-admin
+  name: kubernetes-admin@kubernetes
+current-context: kubernetes-admin@kubernetes
+kind: Config
+preferences: {}
+users:
+- name: kubernetes-admin
+  user:
+    client-certificate-data: 
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLVENDQWhHZ0F3SUJBZ0lJZHBoVmNpWGRyd013RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRFd01ESXdNek13TXpGYUZ3MHlOVEV3TURJd016TTFNekZhTUR3eApIekFkQmdOVkJBb1RGbXQxWW1WaFpHMDZZMngxYzNSbGNpMWhaRzFwYm5NeEdUQVhCZ05WQkFNVEVHdDFZbVZ5CmJtVjBaWE10WVdSdGFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDbFFpWEsKSUVZNDhWZlFUUjhBZmo4SnNpOE95ZjNDRnFZcUw0YlRMYkdBZ0Rjamd1T2FIbUpDMUZQVVJLNUh0RSt
 [...]
+    client-key-data: 
LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBcFVJbHlpQkdPUEZYMEUwZkFINC9DYkl2RHNuOXdoYW1LaStHMHkyeGdJQTNJNExqCm1oNWlRdFJUMUVTdVI3UlBwM01vL3ozWXFZYzZqbE12MXJpRDVIK0s2dkdTQnJXODB3L1RLb1doN3BSRi9Vam8KK3FXdWl4cWo5MU1YeWpDWHZYRTlqRUxISnVSZWN3bTNyVGhBTUxPS2dmUTl4YjBtZzh5VVZKS3czOUlmWm1pWgpTOE5iRGdPMVpEL3hLUUE2MHh4SDV5dEhHYmE4R3V4cDJHaW81c0dQZFlEK0JZN2FuU1Z1aVpyd01kcFZLZmZUCmJuQVQzQWI1Z1Y2Nzg0VFVNMkJDeUtkYUI3WnQvTEJucUhJUWZpZHlYV1Vjby9IZzRXUTFLbHV1S2dKekY
 [...]
diff --git a/app/horus/core/horuser/metrics.go 
b/app/horus/core/horuser/metrics.go
index 62c71883..b1d39ec4 100644
--- a/app/horus/core/horuser/metrics.go
+++ b/app/horus/core/horuser/metrics.go
@@ -17,7 +17,9 @@ package horuser
 
 import (
        "fmt"
+       "github.com/apache/dubbo-kubernetes/app/horus/base/db"
        "github.com/prometheus/client_golang/prometheus"
+       "k8s.io/klog/v2"
        "strings"
 )
 
@@ -79,6 +81,56 @@ func (h *Horuser) Collect(ch chan<- prometheus.Metric) {
        downtimeKey := fmt.Sprintf("node downtime,%s", 
buttons[h.cc.NodeDownTime.Enabled])
        info[downtimeKey] = kFunc(h.cc.NodeDownTime.KubeMultiple)
 
+       nodeFunc := func() {
+               nodes, err := db.GetNode()
+               if err != nil {
+                       klog.Errorf("horus metrics collect db get node err:%v", 
err)
+                       return
+               }
+               if len(nodes) == 0 {
+                       klog.Infof("horus metrics collect db zero err:%v", err)
+                       return
+               }
+               for _, v := range nodes {
+                       v := v
+                       ct := v.CreateTime.Local().Format("2006-01-02 15:04:05")
+                       ut := v.UpdateTime.Local().Format("2006-01-02 15:04:05")
+                       p := prometheus.MustNewConstMetric(NodeInfo,
+                               prometheus.GaugeValue, 1,
+                               v.NodeName,
+                               v.NodeIP,
+                               v.Sn,
+                               v.ClusterName,
+                               v.ModuleName,
+                               v.Reason,
+                               fmt.Sprintf("%d", v.Restart),
+                               fmt.Sprintf("%d", v.Repair),
+                               v.RepairTicketUrl,
+                               v.FirstDate,
+                               ct,
+                               ut,
+                               v.RecoveryQL,
+                               fmt.Sprintf("%d", v.RecoveryMark),
+                       )
+
+                       fmt.Println("NodeName:", v.NodeName)
+                       fmt.Println("NodeIP:", v.NodeIP)
+                       fmt.Println("Sn:", v.Sn)
+                       fmt.Println("ClusterName:", v.ClusterName)
+                       fmt.Println("ModuleName:", v.ModuleName)
+                       fmt.Println("Reason:", v.Reason)
+                       fmt.Println("Restart:", v.Restart)
+                       fmt.Println("Repair:", v.Repair)
+                       fmt.Println("RepairTicketUrl:", v.RepairTicketUrl)
+                       fmt.Println("FirstDate:", v.FirstDate)
+                       fmt.Println("CreateTime:", ct)
+                       fmt.Println("UpdateTime:", ut)
+
+                       ch <- p
+               }
+       }
+       nodeFunc()
+
        for k, clusterName := range info {
                s := strings.Split(k, ",")
                feature, enabled := s[0], s[1]
@@ -103,4 +155,5 @@ func (h *Horuser) Collect(ch chan<- prometheus.Metric) {
 func (h *Horuser) Describe(ch chan<- *prometheus.Desc) {
        ch <- FeatureInfo
        ch <- MultipleInfo
+       ch <- NodeInfo
 }

Reply via email to