Skip to content

Commit 9a5a04b

Browse files
authored
Merge branch 'prometheus-community:master' into master
2 parents 8df3030 + 2391ad1 commit 9a5a04b

File tree

9 files changed

+87
-60
lines changed

9 files changed

+87
-60
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## master / unreleased
22

3-
## 0.12.0-rc.0 / 2022-08-26
3+
## 0.12.0 / 2023-03-21
44

55
BREAKING CHANGES:
66

@@ -10,7 +10,11 @@ PostgreSQL servers from a single exporter by passing the target via URL
1010
params. See the Multi-Target Support section of the README.
1111

1212
* [CHANGE] Add multi-target support #618
13+
* [CHANGE] Add usename and application_name to pg_stat_activity metrics #673
14+
* [FEATURE] Add replication metrics from pg_replication_slots #747
1315
* [BUGFIX] Add dsn type for handling datasources #678
16+
* [BUGFIX] Add 64kB unit for postgres 15 #740
17+
* [BUGFIX] Add 4kB unit for postgres compiled with small blocks #699
1418

1519
## 0.11.1 / 2022-08-01
1620

Makefile.common

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ BUILD_DOCKER_ARCHS = $(addprefix common-docker-,$(DOCKER_ARCHS))
9191
PUBLISH_DOCKER_ARCHS = $(addprefix common-docker-publish-,$(DOCKER_ARCHS))
9292
TAG_DOCKER_ARCHS = $(addprefix common-docker-tag-latest-,$(DOCKER_ARCHS))
9393

94+
SANITIZED_DOCKER_IMAGE_TAG := $(subst +,-,$(DOCKER_IMAGE_TAG))
95+
9496
ifeq ($(GOHOSTARCH),amd64)
9597
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux freebsd darwin windows))
9698
# Only supported on amd64
@@ -205,7 +207,7 @@ common-tarball: promu
205207
.PHONY: common-docker $(BUILD_DOCKER_ARCHS)
206208
common-docker: $(BUILD_DOCKER_ARCHS)
207209
$(BUILD_DOCKER_ARCHS): common-docker-%:
208-
docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" \
210+
docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)" \
209211
-f $(DOCKERFILE_PATH) \
210212
--build-arg ARCH="$*" \
211213
--build-arg OS="linux" \
@@ -214,19 +216,19 @@ $(BUILD_DOCKER_ARCHS): common-docker-%:
214216
.PHONY: common-docker-publish $(PUBLISH_DOCKER_ARCHS)
215217
common-docker-publish: $(PUBLISH_DOCKER_ARCHS)
216218
$(PUBLISH_DOCKER_ARCHS): common-docker-publish-%:
217-
docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)"
219+
docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)"
218220

219221
DOCKER_MAJOR_VERSION_TAG = $(firstword $(subst ., ,$(shell cat VERSION)))
220222
.PHONY: common-docker-tag-latest $(TAG_DOCKER_ARCHS)
221223
common-docker-tag-latest: $(TAG_DOCKER_ARCHS)
222224
$(TAG_DOCKER_ARCHS): common-docker-tag-latest-%:
223-
docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest"
224-
docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:v$(DOCKER_MAJOR_VERSION_TAG)"
225+
docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:latest"
226+
docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:$(SANITIZED_DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$*:v$(DOCKER_MAJOR_VERSION_TAG)"
225227

226228
.PHONY: common-docker-manifest
227229
common-docker-manifest:
228-
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create -a "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" $(foreach ARCH,$(DOCKER_ARCHS),$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$(ARCH):$(DOCKER_IMAGE_TAG))
229-
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)"
230+
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest create -a "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(SANITIZED_DOCKER_IMAGE_TAG)" $(foreach ARCH,$(DOCKER_ARCHS),$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)-linux-$(ARCH):$(SANITIZED_DOCKER_IMAGE_TAG))
231+
DOCKER_CLI_EXPERIMENTAL=enabled docker manifest push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(SANITIZED_DOCKER_IMAGE_TAG)"
230232

231233
.PHONY: promu
232234
promu: $(PROMU)

README.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
Prometheus exporter for PostgreSQL server metrics.
99

10-
CI Tested PostgreSQL versions: `9.4`, `9.5`, `9.6`, `10`, `11`, `12`, `13`, `14`, `15`
10+
CI Tested PostgreSQL versions: `10`, `11`, `12`, `13`, `14`, `15`
1111

1212
## Quick Start
1313
This package is available for Docker:
@@ -77,9 +77,22 @@ This will build the docker image as `prometheuscommunity/postgres_exporter:${bra
7777
* `collector.bgwriter`
7878
Enable the pg_stat_bgwriter collector. Default is `enabled`
7979

80+
* `collector.replication_slot`
81+
Enable the replication_slot collector. Default is `enabled`
82+
83+
* `config.file`
84+
Set the config file path. Default is `postgres_exporter.yml`
85+
86+
* `web.systemd-socket`
87+
Use systemd socket activation listeners instead of port listeners (Linux only). Default is `false`
88+
8089
* `web.listen-address`
8190
Address to listen on for web interface and telemetry. Default is `:9187`.
8291

92+
* `web.config.file`
93+
Configuration file to use TLS and/or basic authentication. The format of the
94+
file is described [in the exporter-toolkit repository](https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md).
95+
8396
* `web.telemetry-path`
8497
Path under which to expose metrics. Default is `/metrics`.
8598

@@ -118,10 +131,6 @@ This will build the docker image as `prometheuscommunity/postgres_exporter:${bra
118131
* `log.format`
119132
Set the log format: one of `logfmt`, `json`.
120133

121-
* `web.config.file`
122-
Configuration file to use TLS and/or basic authentication. The format of the
123-
file is described [in the exporter-toolkit repository](https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md).
124-
125134
### Environment Variables
126135

127136
The following environment variables configure the exporter:

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.12.0-rc.0
1+
0.12.0

cmd/postgres_exporter/main.go

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"os"
2020
"strings"
2121

22+
"github.com/alecthomas/kingpin/v2"
2223
"github.com/go-kit/log"
2324
"github.com/go-kit/log/level"
2425
"github.com/prometheus-community/postgres_exporter/collector"
@@ -30,7 +31,6 @@ import (
3031
"github.com/prometheus/common/version"
3132
"github.com/prometheus/exporter-toolkit/web"
3233
"github.com/prometheus/exporter-toolkit/web/kingpinflag"
33-
"gopkg.in/alecthomas/kingpin.v2"
3434
)
3535

3636
var (
@@ -40,7 +40,7 @@ var (
4040

4141
configFile = kingpin.Flag("config.file", "Postgres exporter configuration file.").Default("postgres_exporter.yml").String()
4242
webConfig = kingpinflag.AddFlags(kingpin.CommandLine, ":9187")
43-
metricPath = kingpin.Flag("web.telemetry-path", "Path under which to expose metrics.").Default("/metrics").Envar("PG_EXPORTER_WEB_TELEMETRY_PATH").String()
43+
metricsPath = kingpin.Flag("web.telemetry-path", "Path under which to expose metrics.").Default("/metrics").Envar("PG_EXPORTER_WEB_TELEMETRY_PATH").String()
4444
disableDefaultMetrics = kingpin.Flag("disable-default-metrics", "Do not include default metrics.").Default("false").Envar("PG_EXPORTER_DISABLE_DEFAULT_METRICS").Bool()
4545
disableSettingsMetrics = kingpin.Flag("disable-settings-metrics", "Do not include pg_settings metrics.").Default("false").Envar("PG_EXPORTER_DISABLE_SETTINGS_METRICS").Bool()
4646
autoDiscoverDatabases = kingpin.Flag("auto-discover-databases", "Whether to discover the databases on a server dynamically.").Default("false").Envar("PG_EXPORTER_AUTO_DISCOVER_DATABASES").Bool()
@@ -76,25 +76,14 @@ func main() {
7676
kingpin.Parse()
7777
logger = promlog.New(promlogConfig)
7878

79-
// landingPage contains the HTML served at '/'.
80-
// TODO: Make this nicer and more informative.
81-
var landingPage = []byte(`<html>
82-
<head><title>Postgres exporter</title></head>
83-
<body>
84-
<h1>Postgres exporter</h1>
85-
<p><a href='` + *metricPath + `'>Metrics</a></p>
86-
</body>
87-
</html>
88-
`)
89-
9079
if *onlyDumpMaps {
9180
dumpMaps()
9281
return
9382
}
9483

9584
if err := c.ReloadConfig(*configFile, logger); err != nil {
9685
// This is not fatal, but it means that auth must be provided for every dsn.
97-
level.Error(logger).Log("msg", "Error loading config", "err", err)
86+
level.Warn(logger).Log("msg", "Error loading config", "err", err)
9887
}
9988

10089
dsns, err := getDataSources()
@@ -138,16 +127,32 @@ func main() {
138127
[]string{},
139128
)
140129
if err != nil {
141-
level.Error(logger).Log("msg", "Failed to create PostgresCollector", "err", err.Error())
130+
level.Warn(logger).Log("msg", "Failed to create PostgresCollector", "err", err.Error())
142131
} else {
143132
prometheus.MustRegister(pe)
144133
}
145134

146-
http.Handle(*metricPath, promhttp.Handler())
147-
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
148-
w.Header().Set("Content-Type", "text/html; charset=UTF-8") // nolint: errcheck
149-
w.Write(landingPage) // nolint: errcheck
150-
})
135+
http.Handle(*metricsPath, promhttp.Handler())
136+
137+
if *metricsPath != "/" && *metricsPath != "" {
138+
landingConfig := web.LandingConfig{
139+
Name: "Postgres Exporter",
140+
Description: "Prometheus PostgreSQL server Exporter",
141+
Version: version.Info(),
142+
Links: []web.LandingLinks{
143+
{
144+
Address: *metricsPath,
145+
Text: "Metrics",
146+
},
147+
},
148+
}
149+
landingPage, err := web.NewLandingPage(landingConfig)
150+
if err != nil {
151+
level.Error(logger).Log("err", err)
152+
os.Exit(1)
153+
}
154+
http.Handle("/", landingPage)
155+
}
151156

152157
http.HandleFunc("/probe", handleProbe(logger, excludedDatabases))
153158

collector/collector.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ import (
2121
"sync"
2222
"time"
2323

24+
"github.com/alecthomas/kingpin/v2"
2425
"github.com/go-kit/log"
2526
"github.com/go-kit/log/level"
2627
"github.com/prometheus/client_golang/prometheus"
27-
"gopkg.in/alecthomas/kingpin.v2"
2828
)
2929

3030
var (

collector/replication_slots.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func (PGReplicationSlotCollector) Update(ctx context.Context, db *sql.DB, ch cha
6969
var slot_name string
7070
var wal_lsn int64
7171
var flush_lsn int64
72-
var is_active int64
72+
var is_active bool
7373
if err := rows.Scan(&slot_name, &wal_lsn, &flush_lsn, &is_active); err != nil {
7474
return err
7575
}
@@ -78,7 +78,7 @@ func (PGReplicationSlotCollector) Update(ctx context.Context, db *sql.DB, ch cha
7878
pgReplicationSlot["current_wal_lsn"],
7979
prometheus.GaugeValue, float64(wal_lsn), slot_name,
8080
)
81-
if is_active == 1 {
81+
if is_active {
8282
ch <- prometheus.MustNewConstMetric(
8383
pgReplicationSlot["confirmed_flush_lsn"],
8484
prometheus.GaugeValue, float64(flush_lsn), slot_name,

go.mod

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,34 @@ module github.com/prometheus-community/postgres_exporter
33
go 1.19
44

55
require (
6+
github.com/alecthomas/kingpin/v2 v2.3.2
67
github.com/blang/semver/v4 v4.0.0
78
github.com/go-kit/log v0.2.1
89
github.com/lib/pq v1.10.7
910
github.com/prometheus/client_golang v1.14.0
1011
github.com/prometheus/client_model v0.3.0
11-
github.com/prometheus/common v0.39.0
12-
github.com/prometheus/exporter-toolkit v0.8.2
13-
gopkg.in/alecthomas/kingpin.v2 v2.2.6
12+
github.com/prometheus/common v0.42.0
13+
github.com/prometheus/exporter-toolkit v0.9.1
1414
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
1515
gopkg.in/yaml.v2 v2.4.0
1616
gopkg.in/yaml.v3 v3.0.1
1717
)
1818

1919
require (
20-
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
2120
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
2221
github.com/beorn7/perks v1.0.1 // indirect
2322
github.com/cespare/xxhash/v2 v2.1.2 // indirect
24-
github.com/coreos/go-systemd/v22 v22.4.0 // indirect
23+
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
2524
github.com/go-logfmt/logfmt v0.5.1 // indirect
2625
github.com/golang/protobuf v1.5.2 // indirect
2726
github.com/jpillora/backoff v1.0.0 // indirect
28-
github.com/kr/pretty v0.2.1 // indirect
29-
github.com/kr/text v0.1.0 // indirect
27+
github.com/kr/pretty v0.3.1 // indirect
28+
github.com/kr/text v0.2.0 // indirect
3029
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
3130
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
32-
github.com/prometheus/procfs v0.8.0 // indirect
31+
github.com/prometheus/procfs v0.9.0 // indirect
32+
github.com/rogpeppe/go-internal v1.9.0 // indirect
33+
github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
3334
golang.org/x/crypto v0.7.0 // indirect
3435
golang.org/x/net v0.8.0 // indirect
3536
golang.org/x/oauth2 v0.6.0 // indirect

go.sum

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
2-
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
1+
github.com/alecthomas/kingpin/v2 v2.3.2 h1:H0aULhgmSzN8xQ3nX1uxtdlTHYoPLu5AhHxWrKI6ocU=
2+
github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE=
33
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc=
44
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
55
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -8,8 +8,9 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM
88
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
99
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
1010
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
11-
github.com/coreos/go-systemd/v22 v22.4.0 h1:y9YHcjnjynCd/DVbg5j9L/33jQM3MxJlbj/zWskzfGU=
12-
github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
11+
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
12+
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
13+
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
1314
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1415
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1516
github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU=
@@ -24,35 +25,42 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS
2425
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
2526
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
2627
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
27-
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
28+
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
2829
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
2930
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
30-
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
3131
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
32+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
33+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
3234
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
33-
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
3435
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
36+
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
37+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
3538
github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
3639
github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
3740
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
3841
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
3942
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
4043
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
44+
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
4145
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4246
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4347
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
4448
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
4549
github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
4650
github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
47-
github.com/prometheus/common v0.39.0 h1:oOyhkDq05hPZKItWVBkJ6g6AtGxi+fy7F4JvUV8uhsI=
48-
github.com/prometheus/common v0.39.0/go.mod h1:6XBZ7lYdLCbkAVhwRsWTZn+IN5AB9F/NXd5w0BbEX0Y=
49-
github.com/prometheus/exporter-toolkit v0.8.2 h1:sbJAfBXQFkG6sUkbwBun8MNdzW9+wd5YfPYofbmj0YM=
50-
github.com/prometheus/exporter-toolkit v0.8.2/go.mod h1:00shzmJL7KxcsabLWcONwpyNEuWhREOnFqZW7vadFS0=
51-
github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
52-
github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
51+
github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=
52+
github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
53+
github.com/prometheus/exporter-toolkit v0.9.1 h1:cNkC01riqiOS+kh3zdnNwRsbe/Blh0WwK3ij5rPJ9Sw=
54+
github.com/prometheus/exporter-toolkit v0.9.1/go.mod h1:iFlTmFISCix0vyuyBmm0UqOUCTao9+RsAsKJP3YM9ec=
55+
github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
56+
github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
57+
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
58+
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
5359
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
5460
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
55-
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
61+
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
62+
github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc=
63+
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
5664
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
5765
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
5866
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
@@ -79,8 +87,6 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
7987
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
8088
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
8189
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
82-
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
83-
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
8490
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
8591
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
8692
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

0 commit comments

Comments
 (0)