metrics: break loop as soon as flags have been set

This commit is contained in:
Hao Duan 2020-05-13 20:23:08 +08:00
parent 46698d7931
commit d532b7f237

View file

@ -39,19 +39,35 @@ func init() {
for _, arg := range os.Args { for _, arg := range os.Args {
flag := strings.TrimLeft(arg, "-") flag := strings.TrimLeft(arg, "-")
if !Enabled {
// only compare enablerFlags when Enable is not set.
for _, enabler := range enablerFlags { for _, enabler := range enablerFlags {
if !Enabled && flag == enabler { if flag == enabler {
log.Info("Enabling metrics collection") log.Info("Enabling metrics collection")
Enabled = true Enabled = true
// break loop if Enabled flag is already set.
break
} }
} }
}
if !EnabledExpensive {
// only compare expensiveEnablerFlags when EnabledExpensive is not set.
for _, enabler := range expensiveEnablerFlags { for _, enabler := range expensiveEnablerFlags {
if !EnabledExpensive && flag == enabler { if flag == enabler {
log.Info("Enabling expensive metrics collection") log.Info("Enabling expensive metrics collection")
EnabledExpensive = true EnabledExpensive = true
// break loop if EnabledExpensive flag is already set.
break
} }
} }
} }
// break loop as all flags have been set.
if Enabled && EnabledExpensive {
break
}
}
} }
// CollectProcessMetrics periodically collects various metrics about the running // CollectProcessMetrics periodically collects various metrics about the running