From d532b7f23790205a8904df8e86b4b322f86d53ce Mon Sep 17 00:00:00 2001 From: Hao Duan Date: Wed, 13 May 2020 20:23:08 +0800 Subject: [PATCH] metrics: break loop as soon as flags have been set --- metrics/metrics.go | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/metrics/metrics.go b/metrics/metrics.go index 747d6471a7..2aa96516aa 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -39,18 +39,34 @@ func init() { for _, arg := range os.Args { flag := strings.TrimLeft(arg, "-") - for _, enabler := range enablerFlags { - if !Enabled && flag == enabler { - log.Info("Enabling metrics collection") - Enabled = true + if !Enabled { + // only compare enablerFlags when Enable is not set. + for _, enabler := range enablerFlags { + if flag == enabler { + log.Info("Enabling metrics collection") + Enabled = true + // break loop if Enabled flag is already set. + break + } } } - for _, enabler := range expensiveEnablerFlags { - if !EnabledExpensive && flag == enabler { - log.Info("Enabling expensive metrics collection") - EnabledExpensive = true + + if !EnabledExpensive { + // only compare expensiveEnablerFlags when EnabledExpensive is not set. + for _, enabler := range expensiveEnablerFlags { + if flag == enabler { + log.Info("Enabling expensive metrics collection") + EnabledExpensive = true + // break loop if EnabledExpensive flag is already set. + break + } } } + + // break loop as all flags have been set. + if Enabled && EnabledExpensive { + break + } } }