From df4d8b1da802959462439496eb9d6bca311293a8 Mon Sep 17 00:00:00 2001 From: Rohit Jnagal Date: Mon, 20 Jul 2015 15:57:03 +0000 Subject: [PATCH] Change logic for determining minimum polling frequency. Since polling is tied to housekeeping, minimum supported polling frequency is 1s. Users can specify polling frequency higher than 1s. The polling loop will be called at the minimum frequency specified in config as long as its higher than the minimum supported frequency. --- collector/generic_collector.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/collector/generic_collector.go b/collector/generic_collector.go index bd74fe90..11fdcef1 100644 --- a/collector/generic_collector.go +++ b/collector/generic_collector.go @@ -65,18 +65,15 @@ func NewCollector(collectorName string, configfile string) (*GenericCollector, e return nil, fmt.Errorf("No metrics provided in config") } - minPollFrequency := configInJSON.MetricsConfig[0].PollingFrequency - - //set minPollFrequency to housekeepingInterval if config returns minpollFrequency=0 - if minPollFrequency == 0 { - minPollFrequency = 1 * time.Second - } - + minPollFrequency := time.Duration(0) regexprs := make([]*regexp.Regexp, len(configInJSON.MetricsConfig)) for ind, metricConfig := range configInJSON.MetricsConfig { - if metricConfig.PollingFrequency < minPollFrequency && metricConfig.PollingFrequency != 0 { - minPollFrequency = metricConfig.PollingFrequency + // Find the minimum specified polling frequency in metric config. + if metricConfig.PollingFrequency != 0 { + if minPollFrequency == 0 || metricConfig.PollingFrequency < minPollFrequency { + minPollFrequency = metricConfig.PollingFrequency + } } regexprs[ind], err = regexp.Compile(metricConfig.Regex) @@ -85,6 +82,12 @@ func NewCollector(collectorName string, configfile string) (*GenericCollector, e } } + // Minimum supported polling frequency is 1s. + minSupportedFrequency := 1 * time.Second + if minPollFrequency < minSupportedFrequency { + minPollFrequency = minSupportedFrequency + } + return &GenericCollector{ name: collectorName, configFile: configInJSON,