File: 01-support-newer-exporter-toolkit.patch

package info (click to toggle)
prometheus-postgres-exporter 0.11.1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 632 kB
  • sloc: sh: 415; makefile: 50
file content (41 lines) | stat: -rw-r--r-- 2,054 bytes parent folder | download
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)
 	}