@@ -18,16 +18,16 @@ import (
1818 "database/sql"
1919 "errors"
2020 "fmt"
21+ "log/slog"
2122 "math"
2223 "os"
2324 "regexp"
2425 "strings"
2526 "time"
2627
2728 "github.com/blang/semver/v4"
28- "github.com/go-kit/log"
29- "github.com/go-kit/log/level"
3029 "github.com/prometheus/client_golang/prometheus"
30+ "github.com/prometheus/common/promslog"
3131)
3232
3333// ColumnUsage should be one of several enum values which describe how a
@@ -265,7 +265,7 @@ var builtinMetricMaps = map[string]intermediateMetricMap{
265265}
266266
267267// Turn the MetricMap column mapping into a prometheus descriptor mapping.
268- func makeDescMap (pgVersion semver.Version , serverLabels prometheus.Labels , metricMaps map [string ]intermediateMetricMap , logger log .Logger , metricPrefix string ) map [string ]MetricMapNamespace {
268+ func makeDescMap (pgVersion semver.Version , serverLabels prometheus.Labels , metricMaps map [string ]intermediateMetricMap , logger * slog .Logger , metricPrefix string ) map [string ]MetricMapNamespace {
269269 var metricMap = make (map [string ]MetricMapNamespace )
270270
271271 for namespace , intermediateMappings := range metricMaps {
@@ -427,7 +427,7 @@ type Exporter struct {
427427 // servers are used to allow re-using the DB connection between scrapes.
428428 // servers contains metrics map and query overrides.
429429 servers * Servers
430- logger log .Logger
430+ logger * slog .Logger
431431 metricPrefix string
432432}
433433
@@ -486,7 +486,7 @@ func WithConstantLabels(s string) ExporterOpt {
486486}
487487
488488// WithLogger configures logger.
489- func WithLogger (logger log .Logger ) ExporterOpt {
489+ func WithLogger (logger * slog .Logger ) ExporterOpt {
490490 return func (e * Exporter ) {
491491 e .logger = logger
492492 }
@@ -511,7 +511,7 @@ func parseConstLabels(s string) prometheus.Labels {
511511 for _ , p := range parts {
512512 keyValue := strings .Split (strings .TrimSpace (p ), "=" )
513513 if len (keyValue ) != 2 {
514- level . Error ( rootFallbackLogger ). Log (`Wrong constant labels format, should be "key=value"` , "input" , p )
514+ rootFallbackLogger . Error (`Wrong constant labels format, should be "key=value"` , "input" , p )
515515 continue
516516 }
517517 key := strings .TrimSpace (keyValue [0 ])
@@ -530,7 +530,7 @@ func NewExporter(dsn []string, opts ...ExporterOpt) *Exporter {
530530 e := & Exporter {
531531 dsn : dsn ,
532532 builtinMetricMaps : builtinMetricMaps ,
533- logger : log .NewNopLogger (), // Can override with WithLogger option
533+ logger : promslog .NewNopLogger (), // Can override with WithLogger option
534534 }
535535
536536 for _ , opt := range opts {
@@ -602,8 +602,8 @@ func newDesc(subsystem, name, help string, labels prometheus.Labels) *prometheus
602602 )
603603}
604604
605- func checkPostgresVersion (db * sql.DB , server string , logger log .Logger ) (semver.Version , string , error ) {
606- level .Debug (logger ). Log ( "msg" , "Querying PostgreSQL version" , "server" , server )
605+ func checkPostgresVersion (db * sql.DB , server string , logger * slog .Logger ) (semver.Version , string , error ) {
606+ logger .Debug ("Querying PostgreSQL version" , "server" , server )
607607 versionRow := db .QueryRow ("SELECT version();" )
608608 var versionString string
609609 err := versionRow .Scan (& versionString )
@@ -626,12 +626,12 @@ func (e *Exporter) checkMapVersions(ch chan<- prometheus.Metric, server *Server)
626626 }
627627
628628 if ! e .disableDefaultMetrics && semanticVersion .LT (lowestSupportedVersion ) {
629- level . Warn ( server .logger ). Log ( "msg" , "PostgreSQL version is lower than our lowest supported version" , "server" , server , "version" , semanticVersion , "lowest_supported_version" , lowestSupportedVersion )
629+ server .logger . Warn ( "PostgreSQL version is lower than our lowest supported version" , "server" , server , "version" , semanticVersion , "lowest_supported_version" , lowestSupportedVersion )
630630 }
631631
632632 // Check if semantic version changed and recalculate maps if needed.
633633 if semanticVersion .NE (server .lastMapVersion ) || server .metricMap == nil {
634- level . Info ( server .logger ). Log ( "msg" , "Semantic version changed" , "server" , server , "from" , server .lastMapVersion , "to" , semanticVersion )
634+ server .logger . Info ( "Semantic version changed" , "server" , server , "from" , server .lastMapVersion , "to" , semanticVersion )
635635 server .mappingMtx .Lock ()
636636
637637 // Get Default Metrics only for master database
@@ -652,13 +652,13 @@ func (e *Exporter) checkMapVersions(ch chan<- prometheus.Metric, server *Server)
652652 // Calculate the hashsum of the useQueries
653653 userQueriesData , err := os .ReadFile (e .userQueriesPath )
654654 if err != nil {
655- level . Error ( server .logger ). Log ( "msg" , "Failed to reload user queries" , "path" , e .userQueriesPath , "err" , err )
655+ server .logger . Error ( "Failed to reload user queries" , "path" , e .userQueriesPath , "err" , err )
656656 e .userQueriesError .WithLabelValues (e .userQueriesPath , "" ).Set (1 )
657657 } else {
658658 hashsumStr := fmt .Sprintf ("%x" , sha256 .Sum256 (userQueriesData ))
659659
660660 if err := addQueries (userQueriesData , semanticVersion , server , e .metricPrefix ); err != nil {
661- level . Error ( server .logger ). Log ( "msg" , "Failed to reload user queries" , "path" , e .userQueriesPath , "err" , err )
661+ server .logger . Error ( "Failed to reload user queries" , "path" , e .userQueriesPath , "err" , err )
662662 e .userQueriesError .WithLabelValues (e .userQueriesPath , hashsumStr ).Set (1 )
663663 } else {
664664 // Mark user queries as successfully loaded
@@ -700,7 +700,7 @@ func (e *Exporter) scrape(ch chan<- prometheus.Metric) {
700700 if err := e .scrapeDSN (ch , dsn ); err != nil {
701701 errorsCount ++
702702
703- level . Error ( e .logger ). Log ( "err" , err )
703+ e .logger . Error ( "error encountered scraping DSN" , "err" , err )
704704
705705 if _ , ok := err .(* ErrorConnectToServer ); ok {
706706 connectionErrorsCount ++
0 commit comments