@@ -66,10 +66,16 @@ func NewCollector(collectorName string, configfile string) (*GenericCollector, e
66
66
}
67
67
68
68
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
+
69
75
regexprs := make ([]* regexp.Regexp , len (configInJSON .MetricsConfig ))
70
76
71
77
for ind , metricConfig := range configInJSON .MetricsConfig {
72
- if metricConfig .PollingFrequency < minPollFrequency {
78
+ if metricConfig .PollingFrequency < minPollFrequency && metricConfig . PollingFrequency != 0 {
73
79
minPollFrequency = metricConfig .PollingFrequency
74
80
}
75
81
@@ -95,14 +101,8 @@ func (collector *GenericCollector) Name() string {
95
101
96
102
//Returns collected metrics and the next collection time of the collector
97
103
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
- }
104
104
currentTime := time .Now ()
105
- nextCollectionTime := currentTime .Add (time .Duration (minNextColTime * time .Second ))
105
+ nextCollectionTime := currentTime .Add (time .Duration (collector . info . minPollingFrequency * time .Second ))
106
106
107
107
uri := collector .configFile .Endpoint
108
108
response , err := http .Get (uri )
@@ -121,12 +121,7 @@ func (collector *GenericCollector) Collect() (time.Time, []v1.Metric, error) {
121
121
var errorSlice []error
122
122
123
123
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 ))
130
125
if matchString != nil {
131
126
if metricConfig .Units == "float" {
132
127
regVal , err := strconv .ParseFloat (strings .TrimSpace (matchString [1 ]), 64 )
0 commit comments