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
}