Skip to content

Commit 21788f0

Browse files
authored
Merge pull request #25 from grafana/exporter-package-update-prom-common
Update prometheus/common
2 parents e0a5117 + 4a8bc3c commit 21788f0

32 files changed

+242
-251
lines changed

.github/workflows/golangci-lint.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,23 @@ on:
1414

1515
jobs:
1616
golangci:
17+
permissions:
18+
contents: read # for actions/checkout to fetch code
19+
pull-requests: read # for golangci/golangci-lint-action to fetch pull requests
1720
name: lint
1821
runs-on: ubuntu-latest
1922
steps:
2023
- name: Checkout repository
21-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
22-
- name: install Go
23-
uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
24+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
25+
- name: Install Go
26+
uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0
2427
with:
25-
go-version: 1.21.x
28+
go-version: 1.23.x
2629
- name: Install snmp_exporter/generator dependencies
2730
run: sudo apt-get update && sudo apt-get -y install libsnmp-dev
2831
if: github.repository == 'prometheus/snmp_exporter'
2932
- name: Lint
30-
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
33+
uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
3134
with:
32-
version: v1.54.2
35+
args: --verbose
36+
version: v1.62.0

cmd/postgres_exporter/datasource.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"regexp"
2121
"strings"
2222

23-
"github.com/go-kit/log/level"
2423
"github.com/prometheus/client_golang/prometheus"
2524
)
2625

@@ -39,19 +38,19 @@ func (e *Exporter) discoverDatabaseDSNs() []string {
3938
var err error
4039
dsnURI, err = url.Parse(dsn)
4140
if err != nil {
42-
level.Error(e.logger).Log("msg", "Unable to parse DSN as URI", "dsn", loggableDSN(dsn), "err", err)
41+
e.logger.Error("Unable to parse DSN as URI", "dsn", loggableDSN(dsn), "err", err)
4342
continue
4443
}
4544
} else if connstringRe.MatchString(dsn) {
4645
dsnConnstring = dsn
4746
} else {
48-
level.Error(e.logger).Log("msg", "Unable to parse DSN as either URI or connstring", "dsn", loggableDSN(dsn))
47+
e.logger.Error("Unable to parse DSN as either URI or connstring", "dsn", loggableDSN(dsn))
4948
continue
5049
}
5150

5251
server, err := e.servers.GetServer(dsn)
5352
if err != nil {
54-
level.Error(e.logger).Log("msg", "Error opening connection to database", "dsn", loggableDSN(dsn), "err", err)
53+
e.logger.Error("Error opening connection to database", "dsn", loggableDSN(dsn), "err", err)
5554
continue
5655
}
5756
dsns[dsn] = struct{}{}
@@ -61,7 +60,7 @@ func (e *Exporter) discoverDatabaseDSNs() []string {
6160

6261
databaseNames, err := queryDatabases(server)
6362
if err != nil {
64-
level.Error(e.logger).Log("msg", "Error querying databases", "dsn", loggableDSN(dsn), "err", err)
63+
e.logger.Error("Error querying databases", "dsn", loggableDSN(dsn), "err", err)
6564
continue
6665
}
6766
for _, databaseName := range databaseNames {
@@ -109,7 +108,7 @@ func (e *Exporter) scrapeDSN(ch chan<- prometheus.Metric, dsn string) error {
109108

110109
// Check if map versions need to be updated
111110
if err := e.checkMapVersions(ch, server); err != nil {
112-
level.Warn(e.logger).Log("msg", "Proceeding with outdated query maps, as the Postgres version could not be determined", "err", err)
111+
e.logger.Warn("Proceeding with outdated query maps, as the Postgres version could not be determined", "err", err)
113112
}
114113

115114
return server.Scrape(ch, e.disableSettingsMetrics)

cmd/postgres_exporter/main.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
// See the License for the specific language governing permissions and
1212
// limitations under the License.
1313

14+
//nolint:unused
1415
package postgres_exporter
1516

1617
import (
@@ -20,18 +21,17 @@ import (
2021
"strings"
2122

2223
"github.com/alecthomas/kingpin/v2"
23-
"github.com/go-kit/log"
24-
"github.com/go-kit/log/level"
25-
"github.com/prometheus-community/postgres_exporter/collector"
26-
"github.com/prometheus-community/postgres_exporter/config"
2724
"github.com/prometheus/client_golang/prometheus"
2825
cversion "github.com/prometheus/client_golang/prometheus/collectors/version"
2926
"github.com/prometheus/client_golang/prometheus/promhttp"
30-
"github.com/prometheus/common/promlog"
31-
"github.com/prometheus/common/promlog/flag"
27+
"github.com/prometheus/common/promslog"
28+
"github.com/prometheus/common/promslog/flag"
3229
"github.com/prometheus/common/version"
3330
"github.com/prometheus/exporter-toolkit/web"
3431
"github.com/prometheus/exporter-toolkit/web/kingpinflag"
32+
33+
"github.com/prometheus-community/postgres_exporter/collector"
34+
"github.com/prometheus-community/postgres_exporter/config"
3535
)
3636

3737
var (
@@ -52,7 +52,7 @@ var (
5252
includeDatabases = kingpin.Flag("include-databases", "A list of databases to include when autoDiscoverDatabases is enabled (DEPRECATED)").Default("").Envar("PG_EXPORTER_INCLUDE_DATABASES").String()
5353

5454
// rootFallbackLogger is used when we cannot use the regular logger in this fork. Under normal operations, there shouldn't be anything logged using this.
55-
rootFallbackLogger = log.NewLogfmtLogger(os.Stderr)
55+
rootFallbackLogger = promslog.New(&promslog.Config{})
5656
)
5757

5858
// Metric name parts.
@@ -72,7 +72,7 @@ const (
7272

7373
func main() {
7474
kingpin.Version(version.Print(exporterName))
75-
promlogConfig := &promlog.Config{}
75+
promlogConfig := &promslog.Config{}
7676
flag.AddFlags(kingpin.CommandLine, promlogConfig)
7777
kingpin.HelpFlag.Short('h')
7878
kingpin.Parse()
@@ -84,28 +84,28 @@ func main() {
8484

8585
if err := c.ReloadConfig(*configFile, rootFallbackLogger); err != nil {
8686
// This is not fatal, but it means that auth must be provided for every dsn.
87-
level.Warn(rootFallbackLogger).Log("msg", "Error loading config", "err", err)
87+
rootFallbackLogger.Warn("Error loading config", "err", err)
8888
}
8989

9090
dsns, err := getDataSources()
9191
if err != nil {
92-
level.Error(rootFallbackLogger).Log("msg", "Failed reading data sources", "err", err.Error())
92+
rootFallbackLogger.Error("Failed reading data sources", "err", err.Error())
9393
os.Exit(1)
9494
}
9595

9696
excludedDatabases := strings.Split(*excludeDatabases, ",")
97-
level.Info(rootFallbackLogger).Log("msg", "Excluded databases", "databases", fmt.Sprintf("%v", excludedDatabases))
97+
rootFallbackLogger.Info("Excluded databases", "databases", fmt.Sprintf("%v", excludedDatabases))
9898

9999
if *queriesPath != "" {
100-
level.Warn(rootFallbackLogger).Log("msg", "The extended queries.yaml config is DEPRECATED", "file", *queriesPath)
100+
rootFallbackLogger.Warn("The extended queries.yaml config is DEPRECATED", "file", *queriesPath)
101101
}
102102

103103
if *autoDiscoverDatabases || *excludeDatabases != "" || *includeDatabases != "" {
104-
level.Warn(rootFallbackLogger).Log("msg", "Scraping additional databases via auto discovery is DEPRECATED")
104+
rootFallbackLogger.Warn("Scraping additional databases via auto discovery is DEPRECATED")
105105
}
106106

107107
if *constantLabelsList != "" {
108-
level.Warn(rootFallbackLogger).Log("msg", "Constant labels on all metrics is DEPRECATED")
108+
rootFallbackLogger.Warn("Constant labels on all metrics is DEPRECATED")
109109
}
110110

111111
opts := []ExporterOpt{
@@ -140,7 +140,7 @@ func main() {
140140
[]string{},
141141
)
142142
if err != nil {
143-
level.Warn(rootFallbackLogger).Log("msg", "Failed to create PostgresCollector", "err", err.Error())
143+
rootFallbackLogger.Warn("Failed to create PostgresCollector", "err", err.Error())
144144
} else {
145145
defer pe.Close()
146146
prometheus.MustRegister(pe)
@@ -162,7 +162,7 @@ func main() {
162162
}
163163
landingPage, err := web.NewLandingPage(landingConfig)
164164
if err != nil {
165-
level.Error(rootFallbackLogger).Log("err", err)
165+
rootFallbackLogger.Error("Error initializing landing page", "err", err)
166166
os.Exit(1)
167167
}
168168
http.Handle("/", landingPage)
@@ -172,7 +172,7 @@ func main() {
172172

173173
srv := &http.Server{}
174174
if err := web.ListenAndServe(srv, webConfig, rootFallbackLogger); err != nil {
175-
level.Error(rootFallbackLogger).Log("msg", "Error running HTTP server", "err", err)
175+
rootFallbackLogger.Error("Error running HTTP server", "err", err)
176176
os.Exit(1)
177177
}
178178
}

cmd/postgres_exporter/namespace.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"time"
2121

2222
"github.com/blang/semver/v4"
23-
"github.com/go-kit/log/level"
2423
"github.com/lib/pq"
2524
"github.com/prometheus/client_golang/prometheus"
2625
)
@@ -190,10 +189,10 @@ func queryNamespaceMappings(ch chan<- prometheus.Metric, server *Server) map[str
190189
scrapeStart := time.Now()
191190

192191
for namespace, mapping := range server.metricMap {
193-
level.Debug(server.logger).Log("msg", "Querying namespace", "namespace", namespace)
192+
server.logger.Debug("Querying namespace", "namespace", namespace)
194193

195194
if mapping.master && !server.master {
196-
level.Debug(server.logger).Log("msg", "Query skipped...")
195+
server.logger.Debug("Query skipped...")
197196
continue
198197
}
199198

@@ -202,7 +201,7 @@ func queryNamespaceMappings(ch chan<- prometheus.Metric, server *Server) map[str
202201
serVersion, _ := semver.Parse(server.lastMapVersion.String())
203202
runServerRange, _ := semver.ParseRange(server.runonserver)
204203
if !runServerRange(serVersion) {
205-
level.Debug(server.logger).Log("msg", "Query skipped for this database version", "version", server.lastMapVersion.String(), "target_version", server.runonserver)
204+
server.logger.Debug("Query skipped for this database version", "version", server.lastMapVersion.String(), "target_version", server.runonserver)
206205
continue
207206
}
208207
}
@@ -233,12 +232,12 @@ func queryNamespaceMappings(ch chan<- prometheus.Metric, server *Server) map[str
233232
// Serious error - a namespace disappeared
234233
if err != nil {
235234
namespaceErrors[namespace] = err
236-
level.Info(server.logger).Log("err", err)
235+
server.logger.Info("error encountered querying namespace metrics", "err", err)
237236
}
238237
// Non-serious errors - likely version or parsing problems.
239238
if len(nonFatalErrors) > 0 {
240239
for _, err := range nonFatalErrors {
241-
level.Info(server.logger).Log("err", err)
240+
server.logger.Info("nonfatal error encountered querying namespace metrics", "err", err)
242241
}
243242
}
244243

cmd/postgres_exporter/pg_setting.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919
"strconv"
2020
"strings"
2121

22-
"github.com/go-kit/log/level"
2322
"github.com/prometheus/client_golang/prometheus"
2423
)
2524

@@ -32,7 +31,7 @@ var (
3231

3332
// Query the pg_settings view containing runtime variables
3433
func querySettings(ch chan<- prometheus.Metric, server *Server) error {
35-
level.Debug(server.logger).Log("msg", "Querying pg_setting view", "server", server)
34+
server.logger.Debug("Querying pg_setting view", "server", server)
3635

3736
// pg_settings docs: https://www.postgresql.org/docs/current/static/view-pg-settings.html
3837
//

0 commit comments

Comments
 (0)