From 2366bbf0d742ce73d622a275aafbb513e5c1d062 Mon Sep 17 00:00:00 2001 From: Carman Zhang Date: Mon, 24 Dec 2018 13:11:57 +0800 Subject: [PATCH 1/2] Bug Fix: fixed pod_name conflict --- pkg/models/metrics/metricsruleconst.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/models/metrics/metricsruleconst.go b/pkg/models/metrics/metricsruleconst.go index b1353a5a6..422c88b7a 100644 --- a/pkg/models/metrics/metricsruleconst.go +++ b/pkg/models/metrics/metricsruleconst.go @@ -330,7 +330,7 @@ var RulePromQLTmplMap = MetricMap{ "cluster_namespace_count": `count(kube_namespace_annotations)`, // cluster_pod_count = cluster_pod_running_count + cluster_pod_succeeded_count + cluster_pod_abnormal_count - "cluster_pod_count": `sum((kube_pod_status_scheduled{condition="true"} > 0) * on (pod) group_left(node) (sum by (node, pod) (kube_pod_info)) unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0))`, + "cluster_pod_count": `sum((kube_pod_status_scheduled{condition="true"} > 0) * on (namespace, pod) group_left(node) (sum by (node, namespace, pod) (kube_pod_info)) unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0))`, "cluster_pod_quota": `sum(kube_node_status_capacity_pods unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0))`, "cluster_pod_utilisation": `sum(kube_pod_info unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0)) / sum(kube_node_status_capacity_pods unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0))`, "cluster_pod_running_count": `count(kube_pod_info unless on (pod) (kube_pod_status_phase{phase=~"Failed|Pending|Unknown|Succeeded"} > 0) unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0))`, @@ -405,7 +405,7 @@ var RulePromQLTmplMap = MetricMap{ "node_disk_inode_usage": `node:disk_inodes_total:$1 - node:disk_inodes_free:$1`, "node_disk_inode_utilisation": `(1 - (node:disk_inodes_free:$1 / node:disk_inodes_total:$1))`, - "node_pod_count": `sum by (node) ((kube_pod_status_scheduled{condition="true"} > 0) * on (pod) group_left(node) kube_pod_info$1 unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0))`, + "node_pod_count": `sum by (node) ((kube_pod_status_scheduled{condition="true"} > 0) * on (namespace, pod) group_left(node) kube_pod_info$1 unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0))`, "node_pod_quota": `sum(kube_node_status_capacity_pods$1) by (node) unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0)`, "node_pod_utilisation": `(sum(kube_pod_info$1) by (node) / sum(kube_node_status_capacity_pods$1) by (node)) unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0)`, "node_pod_running_count": `count(kube_pod_info$1 unless on (pod) (kube_pod_status_phase{phase=~"Failed|Pending|Unknown|Succeeded"} > 0)) by (node) unless on (node) (kube_node_status_condition{condition="Ready",status=~"unknown|false"} > 0)`, From edc36d6738089219cef38d286dafec61e1c02e78 Mon Sep 17 00:00:00 2001 From: Carman Zhang Date: Mon, 24 Dec 2018 13:13:10 +0800 Subject: [PATCH 2/2] optimize page function --- pkg/models/metrics/metrics.go | 8 -------- pkg/models/metrics/util.go | 22 +++++++++++++++------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pkg/models/metrics/metrics.go b/pkg/models/metrics/metrics.go index 5987cebc0..18a5eee54 100644 --- a/pkg/models/metrics/metrics.go +++ b/pkg/models/metrics/metrics.go @@ -51,14 +51,6 @@ const ( ChannelMaxCapacity = 100 ) -type PagedFormatedLevelMetric struct { - CurrentPage int `json:"page"` - TotalPage int `json:"total_page"` - TotalItem int `json:"total_item"` - Message string `json:"msg"` - Metric FormatedLevelMetric `json:"metrics"` -} - type FormatedLevelMetric struct { MetricsLevel string `json:"metrics_level"` Results []FormatedMetric `json:"results"` diff --git a/pkg/models/metrics/util.go b/pkg/models/metrics/util.go index 825062a4a..71ccaa79a 100644 --- a/pkg/models/metrics/util.go +++ b/pkg/models/metrics/util.go @@ -176,7 +176,8 @@ func Page(pageNum string, limitNum string, fmtLevelMetric *FormatedLevelMetric, } // matrix type can not be sorted for _, metricItem := range fmtLevelMetric.Results { - if metricItem.Data.ResultType != ResultTypeVector { + // if metric reterieved field, resultType is "" + if metricItem.Data.ResultType == ResultTypeMatrix { return fmtLevelMetric } } @@ -233,12 +234,19 @@ func Page(pageNum string, limitNum string, fmtLevelMetric *FormatedLevelMetric, allPage := int(math.Ceil(float64(maxLength) / float64(limit))) - return &PagedFormatedLevelMetric{ - Message: "paged", - TotalPage: allPage, - TotalItem: maxLength, - CurrentPage: page, - Metric: *fmtLevelMetric, + // add page fields + return &struct { + *FormatedLevelMetric + CurrentPage int `json:"page"` + TotalPage int `json:"total_page"` + TotalItem int `json:"total_item"` + Message string `json:"msg"` + }{ + FormatedLevelMetric: fmtLevelMetric, + CurrentPage: page, + TotalItem: maxLength, + TotalPage: allPage, + Message: "paged", } }