@@ -109,7 +109,7 @@ func recordMetrics(config config, logger log.Logger) {
109
109
pool , err := controller .Hosts ().Info ()
110
110
if err != nil {
111
111
level .Error (logger ).Log ("msg" , "error retrieving hosts info" , "error" , err )
112
- panic ( err )
112
+ return
113
113
}
114
114
115
115
type metrics struct {
@@ -155,7 +155,7 @@ func recordMetrics(config config, logger log.Logger) {
155
155
}
156
156
}
157
157
158
- func newConfig (fileName string , logger log.Logger ) config {
158
+ func newConfig (fileName string , logger log.Logger ) ( config , error ) {
159
159
160
160
viper .SetDefault ("endpoint" , "" ) // "" will be set to "http://localhost:2633/RPC2" by goca
161
161
viper .SetDefault ("interval" , 60 )
@@ -176,20 +176,18 @@ func newConfig(fileName string, logger log.Logger) config {
176
176
177
177
err := viper .ReadInConfig ()
178
178
if err != nil {
179
- level .Error (logger ).Log ("msg" , "error reading config file" , "error" , err )
180
- panic (err )
179
+ return config {}, err
181
180
}
182
181
183
182
return config {
184
183
user : viper .Get ("user" ).(string ),
185
184
password : viper .Get ("password" ).(string ),
186
- endpoint : "" ,
185
+ endpoint : viper . Get ( "endpoint" ).( string ) ,
187
186
interval : viper .Get ("interval" ).(int ),
188
187
host : viper .Get ("host" ).(string ),
189
188
port : viper .Get ("port" ).(int ),
190
189
path : viper .Get ("path" ).(string ),
191
- }
192
-
190
+ }, nil
193
191
}
194
192
195
193
func allowedLevel (logLevel string ) level.Option {
@@ -216,7 +214,12 @@ func main() {
216
214
logger = level .NewFilter (logger , allowedLevel (* logLevel ))
217
215
level .Info (logger ).Log ("msg" , "starting exporter for OpenNebula" )
218
216
219
- config := newConfig (* cfgFile , logger )
217
+ config , err := newConfig (* cfgFile , logger )
218
+ if err != nil {
219
+ level .Error (logger ).Log ("error" , err )
220
+ return
221
+ }
222
+
220
223
level .Debug (logger ).Log ("msg" , "loaded config" , "user" , config .user , "endpoint" , config .endpoint )
221
224
222
225
initCollectors ()
@@ -225,6 +228,10 @@ func main() {
225
228
226
229
level .Info (logger ).Log ("msg" , "starting exporter" , "host" , config .host , "port" , config .port , "path" , config .path )
227
230
http .Handle (config .path , promhttp .Handler ())
228
- http .ListenAndServe (config .host + ":" + strconv .Itoa (config .port ), nil )
231
+
232
+ err = http .ListenAndServe (config .host + ":" + strconv .Itoa (config .port ), nil )
233
+ if err != nil {
234
+ level .Error (logger ).Log ("error" , err )
235
+ }
229
236
230
237
}
0 commit comments