1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
Description: Support building against prometheus/exporter-toolkit >= 0.8.0
Author: Daniel Swarbrick <dswarbrick@debian.org>
Last-Update: 2022-12-15
--- a/cmd/postgres_exporter/main.go
+++ b/cmd/postgres_exporter/main.go
@@ -31,8 +31,7 @@ import (
)
var (
- listenAddress = kingpin.Flag("web.listen-address", "Address to listen on for web interface and telemetry.").Default(":9187").Envar("PG_EXPORTER_WEB_LISTEN_ADDRESS").String()
- webConfig = webflag.AddFlags(kingpin.CommandLine)
+ webConfig *web.FlagConfig
metricPath = kingpin.Flag("web.telemetry-path", "Path under which to expose metrics.").Default("/metrics").Envar("PG_EXPORTER_WEB_TELEMETRY_PATH").String()
disableDefaultMetrics = kingpin.Flag("disable-default-metrics", "Do not include default metrics.").Default("false").Envar("PG_EXPORTER_DISABLE_DEFAULT_METRICS").Bool()
disableSettingsMetrics = kingpin.Flag("disable-settings-metrics", "Do not include pg_settings metrics.").Default("false").Envar("PG_EXPORTER_DISABLE_SETTINGS_METRICS").Bool()
@@ -62,6 +61,14 @@ const (
)
func main() {
+ // Mimic previous behaviour of kingpin.Flag.Envar(...), which overrode the
+ // default flag value
+ if addr := os.Getenv("PG_EXPORTER_WEB_LISTEN_ADDRESS"); addr != "" {
+ webConfig = webflag.AddFlags(kingpin.CommandLine, addr)
+ } else {
+ webConfig = webflag.AddFlags(kingpin.CommandLine, ":9187")
+ }
+
kingpin.Version(version.Print(exporterName))
promlogConfig := &promlog.Config{}
flag.AddFlags(kingpin.CommandLine, promlogConfig)
@@ -132,9 +139,7 @@ func main() {
w.Write(landingPage) // nolint: errcheck
})
- level.Info(logger).Log("msg", "Listening on address", "address", *listenAddress)
- srv := &http.Server{Addr: *listenAddress}
- if err := web.ListenAndServe(srv, *webConfig, logger); err != nil {
+ if err := web.ListenAndServe(&http.Server{}, webConfig, logger); err != nil {
level.Error(logger).Log("msg", "Error running HTTP server", "err", err)
os.Exit(1)
}
|