@@ -86,7 +86,7 @@ func (e *Exporter) StartServiceWatcher(endpointURL url.URL, metricsOptions Metri
86
86
87
87
namespaces , err := e .getNamespaces (endpointURL )
88
88
if err != nil {
89
- log .Println ( err )
89
+ log .Printf ( "Error listing namespaces: %s" , err )
90
90
}
91
91
92
92
services := []types.FunctionStatus {}
@@ -95,15 +95,15 @@ func (e *Exporter) StartServiceWatcher(endpointURL url.URL, metricsOptions Metri
95
95
if len (namespaces ) == 0 {
96
96
services , err = e .getFunctions (endpointURL , e .FunctionNamespace )
97
97
if err != nil {
98
- log .Println ( err )
98
+ log .Printf ( "Error getting functions from: %s, error: %s" , e . FunctionNamespace , err )
99
99
continue
100
100
}
101
101
e .services = services
102
102
} else {
103
103
for _ , namespace := range namespaces {
104
104
nsServices , err := e .getFunctions (endpointURL , namespace )
105
105
if err != nil {
106
- log .Println ( err )
106
+ log .Printf ( "Error getting functions from: %s, error: %s" , e . FunctionNamespace , err )
107
107
continue
108
108
}
109
109
services = append (services , nsServices ... )
@@ -112,7 +112,6 @@ func (e *Exporter) StartServiceWatcher(endpointURL url.URL, metricsOptions Metri
112
112
113
113
e .services = services
114
114
115
- break
116
115
case <- quit :
117
116
return
118
117
}
@@ -159,14 +158,22 @@ func (e *Exporter) getFunctions(endpointURL url.URL, namespace string) ([]types.
159
158
return services , err
160
159
}
161
160
162
- bytesOut , readErr := io .ReadAll (res .Body )
163
- if readErr != nil {
164
- return services , readErr
161
+ var body []byte
162
+ if res .Body != nil {
163
+ defer res .Body .Close ()
164
+
165
+ if b , err := io .ReadAll (res .Body ); err != nil {
166
+ return services , err
167
+ } else {
168
+ body = b
169
+ }
170
+ } else {
171
+ return services , fmt .Errorf ("no response body from /system/functions" )
165
172
}
166
173
167
- if err := json .Unmarshal (bytesOut , & services ); err != nil {
174
+ if err := json .Unmarshal (body , & services ); err != nil {
168
175
return services , fmt .Errorf ("error unmarshalling response: %s, error: %s" ,
169
- string (bytesOut ), err )
176
+ string (body ), err )
170
177
}
171
178
172
179
return services , nil
@@ -193,13 +200,20 @@ func (e *Exporter) getNamespaces(endpointURL url.URL) ([]string, error) {
193
200
return namespaces , nil
194
201
}
195
202
196
- bytesOut , readErr := io .ReadAll (res .Body )
197
- if readErr != nil {
198
- return namespaces , readErr
203
+ var body []byte
204
+ if res .Body != nil {
205
+ defer res .Body .Close ()
206
+
207
+ if b , err := io .ReadAll (res .Body ); err != nil {
208
+ return namespaces , err
209
+ } else {
210
+ body = b
211
+ }
199
212
}
200
213
201
- if err := json .Unmarshal (bytesOut , & namespaces ); err != nil {
202
- return namespaces , fmt .Errorf ("error unmarshalling response: %s, error: %s" , string (bytesOut ), err )
214
+ if err := json .Unmarshal (body , & namespaces ); err != nil {
215
+ return namespaces , fmt .Errorf ("error unmarshalling response: %s, error: %s" , string (body ), err )
203
216
}
217
+
204
218
return namespaces , nil
205
219
}
0 commit comments