From a6a8f10e6b9a036499580d762383ae7825fde74a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=90=AF=E8=88=AA?= <101104760+ZhangSetSail@users.noreply.github.com> Date: Wed, 13 Nov 2024 16:29:53 +0800 Subject: [PATCH] perf: change pro get run pod num (#2007) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 张启航 <101104760+ZhangSetSail@users.noreply.github.com> --- api/handler/cluster.go | 3 +++ api/handler/tenant.go | 5 ++++- api/model/cluster.go | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/api/handler/cluster.go b/api/handler/cluster.go index 6955bf68d7..9b3dc4a91d 100644 --- a/api/handler/cluster.go +++ b/api/handler/cluster.go @@ -159,8 +159,10 @@ func (c *clusterAction) GetClusterInfo(ctx context.Context) (*model.ClusterResou query := fmt.Sprint(`rbd_api_exporter_cluster_pod_number`) podNumber := c.prometheusCli.GetMetric(query, time.Now()) var instance string + var runPodNumber int for _, podNum := range podNumber.MetricData.MetricValues { instance = podNum.Metadata["instance"] + runPodNumber = int(podNum.Sample.Value()) } query = fmt.Sprintf(`rbd_api_exporter_cluster_pod_memory{instance="%v"}`, instance) @@ -274,6 +276,7 @@ func (c *clusterAction) GetClusterInfo(ctx context.Context) (*model.ClusterResou ResourceProxyStatus: true, K8sVersion: k8sutil.GetKubeVersion().String(), NodeReady: nodeReady, + RunPodNumber: runPodNumber, } result.AllNode = len(nodes) diff --git a/api/handler/tenant.go b/api/handler/tenant.go index 4509b5f433..800884550c 100644 --- a/api/handler/tenant.go +++ b/api/handler/tenant.go @@ -477,8 +477,11 @@ func (t *TenantAction) initClusterResource(ctx context.Context) error { for i := range usedNodeList { node := usedNodeList[i] time.Sleep(50 * time.Microsecond) + labelSelector := "creator=Rainbond" podList, err := t.kubeClient.CoreV1().Pods(metav1.NamespaceAll).List(ctx, metav1.ListOptions{ - FieldSelector: fields.SelectorFromSet(fields.Set{"spec.nodeName": node.Name}).String()}) + FieldSelector: fields.SelectorFromSet(fields.Set{"spec.nodeName": node.Name}).String(), + LabelSelector: labelSelector, + }) if err != nil { logrus.Errorf("get node %v pods error:%v", node.Name, err) continue diff --git a/api/model/cluster.go b/api/model/cluster.go index 7024519bb8..4adc3cbbdf 100644 --- a/api/model/cluster.go +++ b/api/model/cluster.go @@ -4,7 +4,7 @@ import ( corev1 "k8s.io/api/core/v1" ) -//ClusterResource - +// ClusterResource - type ClusterResource struct { AllNode int `json:"all_node"` NotReadyNode int `json:"notready_node"` @@ -30,6 +30,7 @@ type ClusterResource struct { ResourceProxyStatus bool `json:"resource_proxy_status"` K8sVersion string `json:"k8s_version"` NodeReady int32 `json:"node_ready"` + RunPodNumber int `json:"run_pod_number"` } // NodeResource is a collection of compute resource. @@ -70,7 +71,7 @@ func (r *NodeResource) Add(rl corev1.ResourceList) { } } -//GatewayResource - +// GatewayResource - type GatewayResource struct { Name string `json:"name"` Namespace string `json:"namespace"`