optimize memory usage

Signed-off-by: ethanvc <xht_xht@qq.com>
This commit is contained in:
john-doy 2023-11-27 23:06:52 +08:00 committed by ethanvc
parent 80d3f0b5b3
commit 6f666c7bd2
1 changed files with 8 additions and 11 deletions

View File

@ -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 {
sort.Sort(MetricSorter(mf.Metric)) if len(mf.Metric) == 0 {
} continue
names := make([]string, 0, len(metricFamiliesByName))
for name, mf := range metricFamiliesByName {
if len(mf.Metric) > 0 {
names = append(names, name)
} }
sort.Sort(MetricSorter(mf.Metric))
result = append(result, mf)
} }
sort.Strings(names) sort.Slice(result, func(i, j int) bool {
result := make([]*dto.MetricFamily, 0, len(names)) return *result[i].Name < *result[j].Name
for _, name := range names { })
result = append(result, metricFamiliesByName[name])
}
return result return result
} }