Code Duplication    Length = 20-22 lines in 2 locations

plumd/plugins/readers/linux/proc/stat.py 2 locations

@@ 99-120 (lines=22) @@
96
97
98
    def proc_stat_cpu_percent(self, key, val):
99
        """Return cpu utilization metrics in percentage.
100
101
        :param key: The metric name (eg. cpu, cpu0, cpu1, etc)
102
        :type key: str
103
        :param val: A deque populated with the metric values from stat
104
        :type val: deque
105
        :rtype: list
106
        """
107
        result = plumd.Result("cpu")
108
        total = sum([ float(i) for i in val])
109
        cpu = self.config.get('cpu_metrics')
110
        for map_val in cpu:
111
            if len(val) < 1:
112
                break
113
            metric_val = float(val.popleft())
114
            mstr = "{0}_{1}".format(key, map_val)
115
            percent_val = metric_val / total * 100.00
116
            result.add(plumd.Float(mstr, percent_val))
117
        return result
118
119
120
    def proc_stat_cpu(self, key, val, ts):
121
        """Return cpu utilization metrics in USER_HZ or Jiffies
122
        (most likely units of 100Hz intervals ie. 100ms intervals).
123
@@ 77-96 (lines=20) @@
74
        for i, metric in enumerate(self.rates):
75
            if metric not in dat:
76
                self.log.warn("stat: unknown metric {0}".format(metric))
77
                del(self.rates[i])
78
                continue
79
            mval = self.calc.per_second(metric, float(dat[metric][0]), ts)
80
            result.add(plumd.Int(metric, mval))
81
82
        # record cpu
83
        if "cpu" in dat:
84
            results.append(self.proc_stat_cpu_percent("cpu", dat["cpu"]))
85
86
        # record each cpu if configured
87
        if self.per_cpu:
88
            for i in xrange(0, len(dat)):
89
                mstr = "cpu{0}".format(i)
90
                if mstr not in dat:
91
                    break
92
                results.append(self.proc_stat_cpu(mstr, dat[mstr], ts))
93
94
        results.append(result)
95
        return results
96
97
98
    def proc_stat_cpu_percent(self, key, val):
99
        """Return cpu utilization metrics in percentage.