Skip to content

Commit 0909576

Browse files
authored
Update logging (#3097)
Switch from promlog/go-kit to promslog/slog for logging. * Update Go build to 1.23. Signed-off-by: Ben Kochie <[email protected]>
1 parent 041d67d commit 0909576

File tree

133 files changed

+601
-671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+601
-671
lines changed

.golangci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ linters-settings:
3232
exclude-functions:
3333
# Used in HTTP handlers, any error is handled by the server itself.
3434
- (net/http.ResponseWriter).Write
35-
# Never check for logger errors.
36-
- (github.com/go-kit/log.Logger).Log
3735
revive:
3836
rules:
3937
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter

collector/arp_linux.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ package collector
1919
import (
2020
"errors"
2121
"fmt"
22+
"log/slog"
2223
"net"
2324

2425
"github.com/alecthomas/kingpin/v2"
25-
"github.com/go-kit/log"
2626
"github.com/jsimonetti/rtnetlink"
2727
"github.com/prometheus/client_golang/prometheus"
2828
"github.com/prometheus/procfs"
@@ -39,15 +39,15 @@ type arpCollector struct {
3939
fs procfs.FS
4040
deviceFilter deviceFilter
4141
entries *prometheus.Desc
42-
logger log.Logger
42+
logger *slog.Logger
4343
}
4444

4545
func init() {
4646
registerCollector("arp", defaultEnabled, NewARPCollector)
4747
}
4848

4949
// NewARPCollector returns a new Collector exposing ARP stats.
50-
func NewARPCollector(logger log.Logger) (Collector, error) {
50+
func NewARPCollector(logger *slog.Logger) (Collector, error) {
5151
fs, err := procfs.NewFS(*procPath)
5252
if err != nil {
5353
return nil, fmt.Errorf("failed to open procfs: %w", err)

collector/bcache_linux.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ package collector
1818

1919
import (
2020
"fmt"
21+
"log/slog"
2122

2223
"github.com/alecthomas/kingpin/v2"
23-
"github.com/go-kit/log"
2424
"github.com/prometheus/client_golang/prometheus"
2525
"github.com/prometheus/procfs/bcache"
2626
)
@@ -36,12 +36,12 @@ func init() {
3636
// A bcacheCollector is a Collector which gathers metrics from Linux bcache.
3737
type bcacheCollector struct {
3838
fs bcache.FS
39-
logger log.Logger
39+
logger *slog.Logger
4040
}
4141

4242
// NewBcacheCollector returns a newly allocated bcacheCollector.
4343
// It exposes a number of Linux bcache statistics.
44-
func NewBcacheCollector(logger log.Logger) (Collector, error) {
44+
func NewBcacheCollector(logger *slog.Logger) (Collector, error) {
4545
fs, err := bcache.NewFS(*sysPath)
4646
if err != nil {
4747
return nil, fmt.Errorf("failed to open sysfs: %w", err)

collector/bonding_linux.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@ package collector
1919
import (
2020
"errors"
2121
"fmt"
22+
"log/slog"
2223
"os"
2324
"path/filepath"
2425
"strings"
2526

26-
"github.com/go-kit/log"
27-
"github.com/go-kit/log/level"
2827
"github.com/prometheus/client_golang/prometheus"
2928
)
3029

3130
type bondingCollector struct {
3231
slaves, active typedDesc
33-
logger log.Logger
32+
logger *slog.Logger
3433
}
3534

3635
func init() {
@@ -39,7 +38,7 @@ func init() {
3938

4039
// NewBondingCollector returns a newly allocated bondingCollector.
4140
// It exposes the number of configured and active slave of linux bonding interfaces.
42-
func NewBondingCollector(logger log.Logger) (Collector, error) {
41+
func NewBondingCollector(logger *slog.Logger) (Collector, error) {
4342
return &bondingCollector{
4443
slaves: typedDesc{prometheus.NewDesc(
4544
prometheus.BuildFQName(namespace, "bonding", "slaves"),
@@ -61,7 +60,7 @@ func (c *bondingCollector) Update(ch chan<- prometheus.Metric) error {
6160
bondingStats, err := readBondingStats(statusfile)
6261
if err != nil {
6362
if errors.Is(err, os.ErrNotExist) {
64-
level.Debug(c.logger).Log("msg", "Not collecting bonding, file does not exist", "file", statusfile)
63+
c.logger.Debug("Not collecting bonding, file does not exist", "file", statusfile)
6564
return ErrNoData
6665
}
6766
return err

collector/boot_time_bsd.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@
1818
package collector
1919

2020
import (
21-
"github.com/go-kit/log"
2221
"github.com/prometheus/client_golang/prometheus"
2322
"golang.org/x/sys/unix"
23+
"log/slog"
2424
)
2525

2626
type bootTimeCollector struct {
27-
logger log.Logger
27+
logger *slog.Logger
2828
}
2929

3030
func init() {
3131
registerCollector("boottime", defaultEnabled, newBootTimeCollector)
3232
}
3333

3434
// newBootTimeCollector returns a new Collector exposing system boot time on BSD systems.
35-
func newBootTimeCollector(logger log.Logger) (Collector, error) {
35+
func newBootTimeCollector(logger *slog.Logger) (Collector, error) {
3636
return &bootTimeCollector{
3737
logger: logger,
3838
}, nil

collector/boot_time_solaris.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,21 @@
1717
package collector
1818

1919
import (
20-
"github.com/go-kit/log"
2120
"github.com/illumos/go-kstat"
2221
"github.com/prometheus/client_golang/prometheus"
22+
"log/slog"
2323
)
2424

2525
type bootTimeCollector struct {
2626
boottime typedDesc
27-
logger log.Logger
27+
logger *slog.Logger
2828
}
2929

3030
func init() {
3131
registerCollector("boottime", defaultEnabled, newBootTimeCollector)
3232
}
3333

34-
func newBootTimeCollector(logger log.Logger) (Collector, error) {
34+
func newBootTimeCollector(logger *slog.Logger) (Collector, error) {
3535
return &bootTimeCollector{
3636
boottime: typedDesc{
3737
prometheus.NewDesc(

collector/btrfs_linux.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,28 @@ package collector
1818

1919
import (
2020
"fmt"
21+
"log/slog"
2122
"path"
2223
"strings"
2324
"syscall"
2425

2526
dennwc "github.com/dennwc/btrfs"
26-
"github.com/go-kit/log"
27-
"github.com/go-kit/log/level"
2827
"github.com/prometheus/client_golang/prometheus"
2928
"github.com/prometheus/procfs/btrfs"
3029
)
3130

3231
// A btrfsCollector is a Collector which gathers metrics from Btrfs filesystems.
3332
type btrfsCollector struct {
3433
fs btrfs.FS
35-
logger log.Logger
34+
logger *slog.Logger
3635
}
3736

3837
func init() {
3938
registerCollector("btrfs", defaultEnabled, NewBtrfsCollector)
4039
}
4140

4241
// NewBtrfsCollector returns a new Collector exposing Btrfs statistics.
43-
func NewBtrfsCollector(logger log.Logger) (Collector, error) {
42+
func NewBtrfsCollector(logger *slog.Logger) (Collector, error) {
4443
fs, err := btrfs.NewFS(*sysPath)
4544
if err != nil {
4645
return nil, fmt.Errorf("failed to open sysfs: %w", err)
@@ -62,8 +61,8 @@ func (c *btrfsCollector) Update(ch chan<- prometheus.Metric) error {
6261

6362
ioctlStatsMap, err := c.getIoctlStats()
6463
if err != nil {
65-
level.Debug(c.logger).Log(
66-
"msg", "Error querying btrfs device stats with ioctl",
64+
c.logger.Debug(
65+
"Error querying btrfs device stats with ioctl",
6766
"err", err)
6867
ioctlStatsMap = make(map[string]*btrfsIoctlFsStats)
6968
}
@@ -129,8 +128,8 @@ func (c *btrfsCollector) getIoctlStats() (map[string]*btrfsIoctlFsStats, error)
129128
if err != nil {
130129
// Failed to open this mount point, maybe we didn't have permission
131130
// maybe we'll find another mount point for this FS later.
132-
level.Debug(c.logger).Log(
133-
"msg", "Error inspecting btrfs mountpoint",
131+
c.logger.Debug(
132+
"Error inspecting btrfs mountpoint",
134133
"mountPoint", mountPath,
135134
"err", err)
136135
continue
@@ -141,8 +140,8 @@ func (c *btrfsCollector) getIoctlStats() (map[string]*btrfsIoctlFsStats, error)
141140
if err != nil {
142141
// Failed to get the FS info for some reason,
143142
// perhaps it'll work with a different mount point
144-
level.Debug(c.logger).Log(
145-
"msg", "Error querying btrfs filesystem",
143+
c.logger.Debug(
144+
"Error querying btrfs filesystem",
146145
"mountPoint", mountPath,
147146
"err", err)
148147
continue
@@ -156,8 +155,8 @@ func (c *btrfsCollector) getIoctlStats() (map[string]*btrfsIoctlFsStats, error)
156155

157156
deviceStats, err := c.getIoctlDeviceStats(fs, &fsInfo)
158157
if err != nil {
159-
level.Debug(c.logger).Log(
160-
"msg", "Error querying btrfs device stats",
158+
c.logger.Debug(
159+
"Error querying btrfs device stats",
161160
"mountPoint", mountPath,
162161
"err", err)
163162
continue

collector/buddyinfo.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@ package collector
1818

1919
import (
2020
"fmt"
21+
"log/slog"
2122
"strconv"
2223

23-
"github.com/go-kit/log"
24-
"github.com/go-kit/log/level"
2524
"github.com/prometheus/client_golang/prometheus"
2625
"github.com/prometheus/procfs"
2726
)
@@ -33,15 +32,15 @@ const (
3332
type buddyinfoCollector struct {
3433
fs procfs.FS
3534
desc *prometheus.Desc
36-
logger log.Logger
35+
logger *slog.Logger
3736
}
3837

3938
func init() {
4039
registerCollector("buddyinfo", defaultDisabled, NewBuddyinfoCollector)
4140
}
4241

4342
// NewBuddyinfoCollector returns a new Collector exposing buddyinfo stats.
44-
func NewBuddyinfoCollector(logger log.Logger) (Collector, error) {
43+
func NewBuddyinfoCollector(logger *slog.Logger) (Collector, error) {
4544
desc := prometheus.NewDesc(
4645
prometheus.BuildFQName(namespace, buddyInfoSubsystem, "blocks"),
4746
"Count of free blocks according to size.",
@@ -62,7 +61,7 @@ func (c *buddyinfoCollector) Update(ch chan<- prometheus.Metric) error {
6261
return fmt.Errorf("couldn't get buddyinfo: %w", err)
6362
}
6463

65-
level.Debug(c.logger).Log("msg", "Set node_buddy", "buddyInfo", buddyInfo)
64+
c.logger.Debug("Set node_buddy", "buddyInfo", buddyInfo)
6665
for _, entry := range buddyInfo {
6766
for size, value := range entry.Sizes {
6867
ch <- prometheus.MustNewConstMetric(

collector/cgroups_linux.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ package collector
1818

1919
import (
2020
"fmt"
21+
"log/slog"
2122

22-
"github.com/go-kit/log"
2323
"github.com/prometheus/client_golang/prometheus"
2424
"github.com/prometheus/procfs"
2525
)
@@ -30,15 +30,15 @@ type cgroupSummaryCollector struct {
3030
fs procfs.FS
3131
cgroups *prometheus.Desc
3232
enabled *prometheus.Desc
33-
logger log.Logger
33+
logger *slog.Logger
3434
}
3535

3636
func init() {
3737
registerCollector(cgroupsCollectorSubsystem, defaultDisabled, NewCgroupSummaryCollector)
3838
}
3939

4040
// NewCgroupSummaryCollector returns a new Collector exposing a summary of cgroups.
41-
func NewCgroupSummaryCollector(logger log.Logger) (Collector, error) {
41+
func NewCgroupSummaryCollector(logger *slog.Logger) (Collector, error) {
4242
fs, err := procfs.NewFS(*procPath)
4343
if err != nil {
4444
return nil, fmt.Errorf("failed to open procfs: %w", err)

collector/collector.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ package collector
1717
import (
1818
"errors"
1919
"fmt"
20+
"log/slog"
2021
"sync"
2122
"time"
2223

2324
"github.com/alecthomas/kingpin/v2"
24-
"github.com/go-kit/log"
25-
"github.com/go-kit/log/level"
2625
"github.com/prometheus/client_golang/prometheus"
2726
)
2827

@@ -50,14 +49,14 @@ const (
5049
)
5150

5251
var (
53-
factories = make(map[string]func(logger log.Logger) (Collector, error))
52+
factories = make(map[string]func(logger *slog.Logger) (Collector, error))
5453
initiatedCollectorsMtx = sync.Mutex{}
5554
initiatedCollectors = make(map[string]Collector)
5655
collectorState = make(map[string]*bool)
5756
forcedCollectors = map[string]bool{} // collectors which have been explicitly enabled or disabled
5857
)
5958

60-
func registerCollector(collector string, isDefaultEnabled bool, factory func(logger log.Logger) (Collector, error)) {
59+
func registerCollector(collector string, isDefaultEnabled bool, factory func(logger *slog.Logger) (Collector, error)) {
6160
var helpDefaultState string
6261
if isDefaultEnabled {
6362
helpDefaultState = "enabled"
@@ -78,7 +77,7 @@ func registerCollector(collector string, isDefaultEnabled bool, factory func(log
7877
// NodeCollector implements the prometheus.Collector interface.
7978
type NodeCollector struct {
8079
Collectors map[string]Collector
81-
logger log.Logger
80+
logger *slog.Logger
8281
}
8382

8483
// DisableDefaultCollectors sets the collector state to false for all collectors which
@@ -104,7 +103,7 @@ func collectorFlagAction(collector string) func(ctx *kingpin.ParseContext) error
104103
}
105104

106105
// NewNodeCollector creates a new NodeCollector.
107-
func NewNodeCollector(logger log.Logger, filters ...string) (*NodeCollector, error) {
106+
func NewNodeCollector(logger *slog.Logger, filters ...string) (*NodeCollector, error) {
108107
f := make(map[string]bool)
109108
for _, filter := range filters {
110109
enabled, exist := collectorState[filter]
@@ -126,7 +125,7 @@ func NewNodeCollector(logger log.Logger, filters ...string) (*NodeCollector, err
126125
if collector, ok := initiatedCollectors[key]; ok {
127126
collectors[key] = collector
128127
} else {
129-
collector, err := factories[key](log.With(logger, "collector", key))
128+
collector, err := factories[key](logger.With("collector", key))
130129
if err != nil {
131130
return nil, err
132131
}
@@ -156,21 +155,21 @@ func (n NodeCollector) Collect(ch chan<- prometheus.Metric) {
156155
wg.Wait()
157156
}
158157

159-
func execute(name string, c Collector, ch chan<- prometheus.Metric, logger log.Logger) {
158+
func execute(name string, c Collector, ch chan<- prometheus.Metric, logger *slog.Logger) {
160159
begin := time.Now()
161160
err := c.Update(ch)
162161
duration := time.Since(begin)
163162
var success float64
164163

165164
if err != nil {
166165
if IsNoDataError(err) {
167-
level.Debug(logger).Log("msg", "collector returned no data", "name", name, "duration_seconds", duration.Seconds(), "err", err)
166+
logger.Debug("collector returned no data", "name", name, "duration_seconds", duration.Seconds(), "err", err)
168167
} else {
169-
level.Error(logger).Log("msg", "collector failed", "name", name, "duration_seconds", duration.Seconds(), "err", err)
168+
logger.Error("collector failed", "name", name, "duration_seconds", duration.Seconds(), "err", err)
170169
}
171170
success = 0
172171
} else {
173-
level.Debug(logger).Log("msg", "collector succeeded", "name", name, "duration_seconds", duration.Seconds())
172+
logger.Debug("collector succeeded", "name", name, "duration_seconds", duration.Seconds())
174173
success = 1
175174
}
176175
ch <- prometheus.MustNewConstMetric(scrapeDurationDesc, prometheus.GaugeValue, duration.Seconds(), name)

0 commit comments

Comments
 (0)