Skip to content

Commit d56ff3c

Browse files
committed
PMM-14431 Reduce complexity.
1 parent c045481 commit d56ff3c

File tree

1 file changed

+32
-26
lines changed

1 file changed

+32
-26
lines changed

exporter/metrics.go

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -412,38 +412,44 @@ func handleMetric(reservedNames []string, prefix, nextPrefix, k string, val inte
412412
case []interface{}:
413413
// skip
414414
default:
415-
rm, err := makeRawMetric(reservedNames, prefix, k, v, l)
416-
if err != nil {
417-
invalidMetric := prometheus.NewInvalidMetric(prometheus.NewInvalidDesc(err), err)
418-
res = append(res, invalidMetric)
419-
return res
420-
}
415+
res = append(res, handleRawMetric(reservedNames, prefix, k, v, l, compatibleMode)...)
416+
}
417+
return res
418+
}
421419

422-
// makeRawMetric returns a nil metric for some data types like strings
423-
// because we cannot extract data from all types
424-
if rm == nil {
425-
return res
426-
}
420+
func handleRawMetric(reservedNames []string, prefix, k string, v interface{}, l map[string]string, compatibleMode bool) []prometheus.Metric {
421+
var res []prometheus.Metric
422+
rm, err := makeRawMetric(reservedNames, prefix, k, v, l)
423+
if err != nil {
424+
invalidMetric := prometheus.NewInvalidMetric(prometheus.NewInvalidDesc(err), err)
425+
res = append(res, invalidMetric)
426+
return res
427+
}
427428

428-
metrics := []*rawMetric{rm}
429+
// makeRawMetric returns a nil metric for some data types like strings
430+
// because we cannot extract data from all types
431+
if rm == nil {
432+
return res
433+
}
429434

430-
if renamedMetrics := metricRenameAndLabel(rm, specialConversions); renamedMetrics != nil {
431-
metrics = renamedMetrics
432-
}
435+
metrics := []*rawMetric{rm}
433436

434-
for _, m := range metrics {
435-
metric, err := rawToPrometheusMetric(m)
436-
if err != nil {
437-
invalidMetric := prometheus.NewInvalidMetric(prometheus.NewInvalidDesc(err), err)
438-
res = append(res, invalidMetric)
439-
continue
440-
}
437+
if renamedMetrics := metricRenameAndLabel(rm, specialConversions); renamedMetrics != nil {
438+
metrics = renamedMetrics
439+
}
441440

442-
res = append(res, metric)
441+
for _, m := range metrics {
442+
metric, err := rawToPrometheusMetric(m)
443+
if err != nil {
444+
invalidMetric := prometheus.NewInvalidMetric(prometheus.NewInvalidDesc(err), err)
445+
res = append(res, invalidMetric)
446+
continue
447+
}
443448

444-
if compatibleMode {
445-
res = appendCompatibleMetric(res, m)
446-
}
449+
res = append(res, metric)
450+
451+
if compatibleMode {
452+
res = appendCompatibleMetric(res, m)
447453
}
448454
}
449455
return res

0 commit comments

Comments
 (0)