diff --git a/pkg/cri/resource-manager/policy/builtin/none/none-policy.go b/pkg/cri/resource-manager/policy/builtin/none/none-policy.go index ff613b1dc..34485820e 100644 --- a/pkg/cri/resource-manager/policy/builtin/none/none-policy.go +++ b/pkg/cri/resource-manager/policy/builtin/none/none-policy.go @@ -116,7 +116,7 @@ func (p *none) DescribeMetrics() []*prometheus.Desc { return nil } -// CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. +// CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. func (p *none) CollectMetrics(policy.Metrics) ([]prometheus.Metric, error) { return nil, nil } diff --git a/pkg/cri/resource-manager/policy/builtin/podpools/metrics.go b/pkg/cri/resource-manager/policy/builtin/podpools/metrics.go index e42a2d580..38f65d7f5 100644 --- a/pkg/cri/resource-manager/policy/builtin/podpools/metrics.go +++ b/pkg/cri/resource-manager/policy/builtin/podpools/metrics.go @@ -130,7 +130,7 @@ func (p *podpools) PollMetrics() policy.Metrics { return policyMetrics } -// CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. +// CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. func (p *podpools) CollectMetrics(m policy.Metrics) ([]prometheus.Metric, error) { metrics, ok := m.(*Metrics) if !ok { diff --git a/pkg/cri/resource-manager/policy/builtin/static-plus/static-plus-policy.go b/pkg/cri/resource-manager/policy/builtin/static-plus/static-plus-policy.go index ab46e70c7..68ba40537 100644 --- a/pkg/cri/resource-manager/policy/builtin/static-plus/static-plus-policy.go +++ b/pkg/cri/resource-manager/policy/builtin/static-plus/static-plus-policy.go @@ -225,7 +225,7 @@ func (p *staticplus) PollMetrics() policy.Metrics { return nil } -// CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. +// CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. func (p *staticplus) CollectMetrics(policy.Metrics) ([]prometheus.Metric, error) { return nil, nil } diff --git a/pkg/cri/resource-manager/policy/builtin/static-pools/stp-policy.go b/pkg/cri/resource-manager/policy/builtin/static-pools/stp-policy.go index f53917447..d05afa5d0 100644 --- a/pkg/cri/resource-manager/policy/builtin/static-pools/stp-policy.go +++ b/pkg/cri/resource-manager/policy/builtin/static-pools/stp-policy.go @@ -262,7 +262,7 @@ func (p *stp) PollMetrics() policy.Metrics { return nil } -// CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. +// CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. func (p *stp) CollectMetrics(policy.Metrics) ([]prometheus.Metric, error) { return nil, nil } diff --git a/pkg/cri/resource-manager/policy/builtin/static/static-policy.go b/pkg/cri/resource-manager/policy/builtin/static/static-policy.go index 1d7f023b6..880b79087 100644 --- a/pkg/cri/resource-manager/policy/builtin/static/static-policy.go +++ b/pkg/cri/resource-manager/policy/builtin/static/static-policy.go @@ -214,7 +214,7 @@ func (p *static) PollMetrics() policy.Metrics { return nil } -// CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. +// CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. func (p *static) CollectMetrics(policy.Metrics) ([]prometheus.Metric, error) { return nil, nil } diff --git a/pkg/cri/resource-manager/policy/builtin/topology-aware/topology-aware-policy.go b/pkg/cri/resource-manager/policy/builtin/topology-aware/topology-aware-policy.go index e0e174c43..e4288f85e 100644 --- a/pkg/cri/resource-manager/policy/builtin/topology-aware/topology-aware-policy.go +++ b/pkg/cri/resource-manager/policy/builtin/topology-aware/topology-aware-policy.go @@ -298,7 +298,7 @@ func (p *policy) PollMetrics() policyapi.Metrics { return nil } -// CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. +// CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. func (p *policy) CollectMetrics(policyapi.Metrics) ([]prometheus.Metric, error) { return nil, nil } diff --git a/pkg/cri/resource-manager/policy/policy.go b/pkg/cri/resource-manager/policy/policy.go index a2225f4c5..0d9298925 100644 --- a/pkg/cri/resource-manager/policy/policy.go +++ b/pkg/cri/resource-manager/policy/policy.go @@ -133,7 +133,7 @@ type Backend interface { DescribeMetrics() []*prometheus.Desc // PollMetrics provides policy metrics for monitoring. PollMetrics() Metrics - // CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. + // CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. CollectMetrics(Metrics) ([]prometheus.Metric, error) } @@ -432,7 +432,7 @@ func (p *policy) DescribeMetrics() []*prometheus.Desc { return nil } -// CollectMetrics generates prometheus metrics from cached/polled policys-specific metrics data. +// CollectMetrics generates prometheus metrics from cached/polled policy-specific metrics data. func (p *policy) CollectMetrics(m Metrics) ([]prometheus.Metric, error) { if !p.Bypassed() { return p.active.CollectMetrics(m) diff --git a/pkg/procstats/procstats.go b/pkg/procstats/procstats.go index bd1cbcaad..5eae25b1d 100644 --- a/pkg/procstats/procstats.go +++ b/pkg/procstats/procstats.go @@ -16,7 +16,6 @@ package procstats import ( "io/ioutil" - "regexp" "strconv" "strings" "sync" @@ -46,16 +45,16 @@ var ( // GetCPUTimeStat calculates CPU usage by using the CPU time statistics from /proc/stat func (t *CPUTimeStat) GetCPUTimeStat() error { - lines, err := readLines(procStat) - if err != nil { - return err - } // /proc/stat looks like this: // cpuid: user, nice, system, idle, iowait, irq, softirq // cpu 130216 19944 162525 1491240 3784 24749 17773 0 0 0 // cpu0 40321 11452 49784 403099 2615 6076 6748 0 0 0 // cpu1 26585 2425 36639 151166 404 2533 3541 0 0 0 // ... + stats, err := ioutil.ReadFile(procStat) + if err != nil { + return err + } t.Lock() defer t.Unlock() sys, err := sysfs.DiscoverSystem() @@ -63,12 +62,13 @@ func (t *CPUTimeStat) GetCPUTimeStat() error { return err } cpuCount := len(sys.CPUIDs()) - for index, line := range lines { + for index, line := range strings.Split(string(stats), "\n") { if index > cpuCount { break } split := strings.Split(line, " ") - if matched, _ := regexp.MatchString("cpu+\\d", split[0]); matched { + + if strings.HasPrefix(split[0], "cpu") && split[0] != "cpu" { i, err := strconv.Atoi(split[0][3:]) if err != nil { log.Error("Fail to get CPU index.") @@ -109,19 +109,3 @@ func (t *CPUTimeStat) GetCPUTimeStat() error { t.IsGetCPUUsageBegin = true return nil } - -func readLines(filePath string) ([]string, error) { - f, err := ioutil.ReadFile(filePath) - if err != nil { - return nil, err - } - data := string(f) - rawLines := strings.Split(data, "\n") - lines := make([]string, 0) - for _, rawLine := range rawLines { - if len(strings.TrimSpace(rawLine)) > 0 { - lines = append(lines, rawLine) - } - } - return lines, nil -}