Skip to content

Commit 6871ed4

Browse files
committed
Modify Collect() method of GenericCollector
1 parent d580ecf commit 6871ed4

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

collector/generic_collector.go

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,16 @@ func NewCollector(collectorName string, configfile string) (*GenericCollector, e
6666
}
6767

6868
minPollFrequency := configInJSON.MetricsConfig[0].PollingFrequency
69+
70+
//set minPollFrequency to housekeepingInterval if config returns minpollFrequency=0
71+
if minPollFrequency == 0 {
72+
minPollFrequency = 1 * time.Second
73+
}
74+
6975
regexprs := make([]*regexp.Regexp, len(configInJSON.MetricsConfig))
7076

7177
for ind, metricConfig := range configInJSON.MetricsConfig {
72-
if metricConfig.PollingFrequency < minPollFrequency {
78+
if metricConfig.PollingFrequency < minPollFrequency && metricConfig.PollingFrequency != 0 {
7379
minPollFrequency = metricConfig.PollingFrequency
7480
}
7581

@@ -95,14 +101,8 @@ func (collector *GenericCollector) Name() string {
95101

96102
//Returns collected metrics and the next collection time of the collector
97103
func (collector *GenericCollector) Collect() (time.Time, []v1.Metric, error) {
98-
minNextColTime := collector.configFile.MetricsConfig[0].PollingFrequency
99-
for _, metricConfig := range collector.configFile.MetricsConfig {
100-
if metricConfig.PollingFrequency < minNextColTime {
101-
minNextColTime = metricConfig.PollingFrequency
102-
}
103-
}
104104
currentTime := time.Now()
105-
nextCollectionTime := currentTime.Add(time.Duration(minNextColTime * time.Second))
105+
nextCollectionTime := currentTime.Add(time.Duration(collector.info.minPollingFrequency * time.Second))
106106

107107
uri := collector.configFile.Endpoint
108108
response, err := http.Get(uri)
@@ -121,12 +121,7 @@ func (collector *GenericCollector) Collect() (time.Time, []v1.Metric, error) {
121121
var errorSlice []error
122122

123123
for ind, metricConfig := range collector.configFile.MetricsConfig {
124-
regex, err := regexp.Compile(metricConfig.Regex)
125-
if err != nil {
126-
return nextCollectionTime, nil, err
127-
}
128-
129-
matchString := regex.FindStringSubmatch(string(pageContent))
124+
matchString := collector.info.regexps[ind].FindStringSubmatch(string(pageContent))
130125
if matchString != nil {
131126
if metricConfig.Units == "float" {
132127
regVal, err := strconv.ParseFloat(strings.TrimSpace(matchString[1]), 64)

0 commit comments

Comments
 (0)