optimize memory usage
Signed-off-by: ethanvc <xht_xht@qq.com>
This commit is contained in:
parent
80d3f0b5b3
commit
6f666c7bd2
|
@ -83,19 +83,16 @@ func (s MetricSorter) Less(i, j int) bool {
|
||||||
// MetricFamilies pruned and the remaining MetricFamilies sorted by name within
|
// MetricFamilies pruned and the remaining MetricFamilies sorted by name within
|
||||||
// the slice, with the contained Metrics sorted within each MetricFamily.
|
// the slice, with the contained Metrics sorted within each MetricFamily.
|
||||||
func NormalizeMetricFamilies(metricFamiliesByName map[string]*dto.MetricFamily) []*dto.MetricFamily {
|
func NormalizeMetricFamilies(metricFamiliesByName map[string]*dto.MetricFamily) []*dto.MetricFamily {
|
||||||
|
result := make([]*dto.MetricFamily, 0, len(metricFamiliesByName))
|
||||||
for _, mf := range metricFamiliesByName {
|
for _, mf := range metricFamiliesByName {
|
||||||
|
if len(mf.Metric) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
sort.Sort(MetricSorter(mf.Metric))
|
sort.Sort(MetricSorter(mf.Metric))
|
||||||
|
result = append(result, mf)
|
||||||
}
|
}
|
||||||
names := make([]string, 0, len(metricFamiliesByName))
|
sort.Slice(result, func(i, j int) bool {
|
||||||
for name, mf := range metricFamiliesByName {
|
return *result[i].Name < *result[j].Name
|
||||||
if len(mf.Metric) > 0 {
|
})
|
||||||
names = append(names, name)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sort.Strings(names)
|
|
||||||
result := make([]*dto.MetricFamily, 0, len(names))
|
|
||||||
for _, name := range names {
|
|
||||||
result = append(result, metricFamiliesByName[name])
|
|
||||||
}
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue