diff --git a/README.md b/README.md index af487a03..0f43e40d 100644 --- a/README.md +++ b/README.md @@ -154,8 +154,6 @@ An example configuration file can be found [here](docs/example_config.yml). #### Configuration file notes -If the `--config.file` flag is not specified, `windows_exporter` will look for a file located at `%programfiles\windows_exporter\config.yml` by default. If no file is found, CLI flags are processed as per normal. - Configuration file values can be mixed with CLI flags. E.G. `.\windows_exporter.exe --collectors.enabled=cpu,logon` diff --git a/exporter.go b/exporter.go index 0afcb651..adad69d5 100644 --- a/exporter.go +++ b/exporter.go @@ -273,8 +273,8 @@ func main() { app = kingpin.New("windows_exporter", "") configFile = app.Flag( "config.file", - "YAML configuration file to use. Values set in this file will override flags.", - ).Default(os.ExpandEnv("$ProgramFiles\\windows_exporter\\config.yml")).String() + "YAML configuration file to use. Values set in this file will be overriden by CLI flags.", + ).String() listenAddress = app.Flag( "telemetry.addr", "host:port for exporter.", @@ -311,18 +311,20 @@ func main() { if err != nil { log.Fatalf("%v\n", err) } - resolver, err := config.NewResolver(*configFile) - if err != nil { - log.Fatalf("could not load config file: %v\n", err) - } - err = resolver.Bind(app, os.Args[1:]) - if err != nil { - log.Fatalf("%v\n", err) - } - // Parse flags once more to include those discovered in configuration file(s). - _, err = app.Parse(os.Args[1:]) - if err != nil { - log.Fatalf("%v\n", err) + if *configFile != "" { + resolver, err := config.NewResolver(*configFile) + if err != nil { + log.Fatalf("could not load config file: %v\n", err) + } + err = resolver.Bind(app, os.Args[1:]) + if err != nil { + log.Fatalf("%v\n", err) + } + // Parse flags once more to include those discovered in configuration file(s). + _, err = app.Parse(os.Args[1:]) + if err != nil { + log.Fatalf("%v\n", err) + } } if *printCollectors {