Skip to content

Commit

Permalink
go-kit/log -> log/slog (#168)
Browse files Browse the repository at this point in the history
  • Loading branch information
yamamoto-febc authored Aug 29, 2023
1 parent 5e57b55 commit 64b58ad
Show file tree
Hide file tree
Showing 37 changed files with 289 additions and 296 deletions.
19 changes: 9 additions & 10 deletions collector/auto_backup.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,11 @@ package collector
import (
"context"
"fmt"
"log/slog"
"sort"
"sync"
"time"

"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/sacloud/iaas-api-go"
"github.com/sacloud/sakuracloud_exporter/platform"
Expand All @@ -31,7 +30,7 @@ import (
// AutoBackupCollector collects metrics about all auto_backups.
type AutoBackupCollector struct {
ctx context.Context
logger log.Logger
logger *slog.Logger
errors *prometheus.CounterVec
client platform.AutoBackupClient

Expand All @@ -43,7 +42,7 @@ type AutoBackupCollector struct {
}

// NewAutoBackupCollector returns a new AutoBackupCollector.
func NewAutoBackupCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.AutoBackupClient) *AutoBackupCollector {
func NewAutoBackupCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.AutoBackupClient) *AutoBackupCollector {
errors.WithLabelValues("auto_backup").Add(0)

labels := []string{"id", "name", "disk_id"}
Expand Down Expand Up @@ -92,9 +91,9 @@ func (c *AutoBackupCollector) Collect(ch chan<- prometheus.Metric) {
autoBackups, err := c.client.Find(c.ctx)
if err != nil {
c.errors.WithLabelValues("auto_backup").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", "can't list autoBackups",
"err", err,
c.logger.Warn(
"can't list autoBackups",
slog.Any("err", err),
)
}

Expand Down Expand Up @@ -154,9 +153,9 @@ func (c *AutoBackupCollector) collectBackupMetrics(ch chan<- prometheus.Metric,
archives, err := c.client.ListBackups(c.ctx, autoBackup.ZoneName, autoBackup.ID)
if err != nil {
c.errors.WithLabelValues("auto_backup").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", "can't list backed up archives",
"err", err,
c.logger.Warn(
"can't list backed up archives",
slog.Any("err", err),
)
return
}
Expand Down
4 changes: 2 additions & 2 deletions collector/auto_backup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func TestAutoBackupCollector_Collect(t *testing.T) {
in: &dummyAutoBackupClient{
findErr: errors.New("dummy"),
},
wantLogs: []string{`level=warn msg="can't list autoBackups" err=dummy`},
wantLogs: []string{`level=WARN msg="can't list autoBackups" err=dummy`},
wantErrCounter: 1,
wantMetrics: nil,
},
Expand Down Expand Up @@ -114,7 +114,7 @@ func TestAutoBackupCollector_Collect(t *testing.T) {
}),
},
},
wantLogs: []string{`level=warn msg="can't list backed up archives" err=dummy`},
wantLogs: []string{`level=WARN msg="can't list backed up archives" err=dummy`},
wantErrCounter: 1,
},
{
Expand Down
13 changes: 6 additions & 7 deletions collector/bill.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,24 @@ package collector

import (
"context"
"log/slog"

"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/sacloud/sakuracloud_exporter/platform"
)

// BillCollector collects metrics about the account.
type BillCollector struct {
ctx context.Context
logger log.Logger
logger *slog.Logger
errors *prometheus.CounterVec
client platform.BillClient

Amount *prometheus.Desc
}

// NewBillCollector returns a new BillCollector.
func NewBillCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.BillClient) *BillCollector {
func NewBillCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.BillClient) *BillCollector {
errors.WithLabelValues("bill").Add(0)

labels := []string{"member_id"}
Expand Down Expand Up @@ -64,9 +63,9 @@ func (c *BillCollector) Collect(ch chan<- prometheus.Metric) {
bill, err := c.client.Read(c.ctx)
if err != nil {
c.errors.WithLabelValues("bill").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", "can't get bill",
"err", err,
c.logger.Warn(
"can't get bill",
slog.Any("err", err),
)
return
}
Expand Down
2 changes: 1 addition & 1 deletion collector/bill_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func TestBillCollector_Collect(t *testing.T) {
in: &dummyBillClient{
err: errors.New("dummy"),
},
wantLogs: []string{`level=warn msg="can't get bill" err=dummy`},
wantLogs: []string{`level=WARN msg="can't get bill" err=dummy`},
wantErrCounter: 1,
wantMetrics: nil,
},
Expand Down
13 changes: 10 additions & 3 deletions collector/collector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,19 @@ package collector
import (
"bytes"
"fmt"
"log/slog"
"sort"
"strings"
"testing"
"time"

"github.com/go-kit/kit/log"
"github.com/prometheus/client_golang/prometheus"
dto "github.com/prometheus/client_model/go"
"github.com/stretchr/testify/require"
)

var logbuf *bytes.Buffer
var testLogger log.Logger
var testLogger *slog.Logger
var testErrors *prometheus.CounterVec

func collectDescs(collector prometheus.Collector) []*prometheus.Desc {
Expand Down Expand Up @@ -95,7 +95,14 @@ func requireMetricsEqual(t *testing.T, m1, m2 []*collectedMetric) {

func initLoggerAndErrors() {
logbuf = &bytes.Buffer{}
testLogger = log.NewLogfmtLogger(log.NewSyncWriter(logbuf))
testLogger = slog.New(slog.NewTextHandler(logbuf, &slog.HandlerOptions{
ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr {
if a.Key == slog.TimeKey {
return slog.Attr{}
}
return a
},
}))
testErrors = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: "sakuracloud_exporter_errors_total",
}, []string{"collector"})
Expand Down
13 changes: 6 additions & 7 deletions collector/coupon.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,17 @@ package collector
import (
"context"
"fmt"
"log/slog"
"time"

"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/sacloud/sakuracloud_exporter/platform"
)

// CouponCollector collects metrics about the account.
type CouponCollector struct {
ctx context.Context
logger log.Logger
logger *slog.Logger
errors *prometheus.CounterVec
client platform.CouponClient

Expand All @@ -39,7 +38,7 @@ type CouponCollector struct {
}

// NewCouponCollector returns a new CouponCollector.
func NewCouponCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.CouponClient) *CouponCollector {
func NewCouponCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.CouponClient) *CouponCollector {
errors.WithLabelValues("coupon").Add(0)

labels := []string{"id", "member_id", "contract_id"}
Expand Down Expand Up @@ -87,9 +86,9 @@ func (c *CouponCollector) Collect(ch chan<- prometheus.Metric) {
coupons, err := c.client.Find(c.ctx)
if err != nil {
c.errors.WithLabelValues("coupon").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", "can't get coupon",
"err", err,
c.logger.Warn(
"can't get coupon",
slog.Any("err", err),
)
return
}
Expand Down
2 changes: 1 addition & 1 deletion collector/coupon_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func TestCouponCollector_Collect(t *testing.T) {
in: &dummyCouponClient{
err: errors.New("dummy"),
},
wantLogs: []string{`level=warn msg="can't get coupon" err=dummy`},
wantLogs: []string{`level=WARN msg="can't get coupon" err=dummy`},
wantErrCounter: 1,
wantMetrics: nil,
},
Expand Down
43 changes: 21 additions & 22 deletions collector/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@ package collector
import (
"context"
"fmt"
"log/slog"
"sync"
"time"

"github.com/go-kit/kit/log"
"github.com/go-kit/kit/log/level"
"github.com/prometheus/client_golang/prometheus"
"github.com/sacloud/iaas-api-go/types"
"github.com/sacloud/packages-go/newsfeed"
Expand All @@ -31,7 +30,7 @@ import (
// DatabaseCollector collects metrics about all databases.
type DatabaseCollector struct {
ctx context.Context
logger log.Logger
logger *slog.Logger
errors *prometheus.CounterVec
client platform.DatabaseClient

Expand Down Expand Up @@ -59,7 +58,7 @@ type DatabaseCollector struct {
}

// NewDatabaseCollector returns a new DatabaseCollector.
func NewDatabaseCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.DatabaseClient) *DatabaseCollector {
func NewDatabaseCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.DatabaseClient) *DatabaseCollector {
errors.WithLabelValues("database").Add(0)

databaseLabels := []string{"id", "name", "zone"}
Expand Down Expand Up @@ -209,9 +208,9 @@ func (c *DatabaseCollector) Collect(ch chan<- prometheus.Metric) {
databases, err := c.client.Find(c.ctx)
if err != nil {
c.errors.WithLabelValues("database").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", "can't list databases",
"err", err,
c.logger.Warn(
"can't list databases",
slog.Any("err", err),
)
}

Expand Down Expand Up @@ -386,9 +385,9 @@ func (c *DatabaseCollector) collectCPUTime(ch chan<- prometheus.Metric, database
values, err := c.client.MonitorCPU(c.ctx, database.ZoneName, database.ID, now)
if err != nil {
c.errors.WithLabelValues("database").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", fmt.Sprintf("can't get database's cpu time: DatabaseID=%d", database.ID),
"err", err,
c.logger.Warn(
fmt.Sprintf("can't get database's cpu time: DatabaseID=%d", database.ID),
slog.Any("err", err),
)
return
}
Expand All @@ -410,9 +409,9 @@ func (c *DatabaseCollector) collectDiskMetrics(ch chan<- prometheus.Metric, data
values, err := c.client.MonitorDisk(c.ctx, database.ZoneName, database.ID, now)
if err != nil {
c.errors.WithLabelValues("database").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", fmt.Sprintf("can't get disk's metrics: DatabaseID=%d", database.ID),
"err", err,
c.logger.Warn(
fmt.Sprintf("can't get disk's metrics: DatabaseID=%d", database.ID),
slog.Any("err", err),
)
return
}
Expand Down Expand Up @@ -440,9 +439,9 @@ func (c *DatabaseCollector) collectNICMetrics(ch chan<- prometheus.Metric, datab
values, err := c.client.MonitorNIC(c.ctx, database.ZoneName, database.ID, now)
if err != nil {
c.errors.WithLabelValues("database").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", fmt.Sprintf("can't get database's NIC metrics: DatabaseID=%d", database.ID),
"err", err,
c.logger.Warn(
fmt.Sprintf("can't get database's NIC metrics: DatabaseID=%d", database.ID),
slog.Any("err", err),
)
return
}
Expand Down Expand Up @@ -471,9 +470,9 @@ func (c *DatabaseCollector) collectDatabaseMetrics(ch chan<- prometheus.Metric,
values, err := c.client.MonitorDatabase(c.ctx, database.ZoneName, database.ID, now)
if err != nil {
c.errors.WithLabelValues("database").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", fmt.Sprintf("can't get database's system metrics: DatabaseID=%d", database.ID),
"err", err,
c.logger.Warn(
fmt.Sprintf("can't get database's system metrics: DatabaseID=%d", database.ID),
slog.Any("err", err),
)
return
}
Expand Down Expand Up @@ -594,9 +593,9 @@ func (c *DatabaseCollector) collectMaintenanceInfo(ch chan<- prometheus.Metric,
info, err := c.client.MaintenanceInfo(resource.InstanceHostInfoURL)
if err != nil {
c.errors.WithLabelValues("database").Add(1)
level.Warn(c.logger).Log( //nolint
"msg", fmt.Sprintf("can't get database's maintenance info: ID=%d", resource.ID),
"err", err,
c.logger.Warn(
fmt.Sprintf("can't get database's maintenance info: ID=%d", resource.ID),
slog.Any("err", err),
)
return
}
Expand Down
10 changes: 5 additions & 5 deletions collector/database_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ func TestDatabaseCollector_Collect(t *testing.T) {
in: &dummyDatabaseClient{
findErr: errors.New("dummy"),
},
wantLogs: []string{`level=warn msg="can't list databases" err=dummy`},
wantLogs: []string{`level=WARN msg="can't list databases" err=dummy`},
wantErrCounter: 1,
wantMetrics: nil,
},
Expand Down Expand Up @@ -236,10 +236,10 @@ func TestDatabaseCollector_Collect(t *testing.T) {
},
},
wantLogs: []string{
`level=warn msg="can't get database's NIC metrics: DatabaseID=101" err=dummy`,
`level=warn msg="can't get database's cpu time: DatabaseID=101" err=dummy`,
`level=warn msg="can't get database's system metrics: DatabaseID=101" err=dummy`,
`level=warn msg="can't get disk's metrics: DatabaseID=101" err=dummy`,
`level=WARN msg="can't get database's NIC metrics: DatabaseID=101" err=dummy`,
`level=WARN msg="can't get database's cpu time: DatabaseID=101" err=dummy`,
`level=WARN msg="can't get database's system metrics: DatabaseID=101" err=dummy`,
`level=WARN msg="can't get disk's metrics: DatabaseID=101" err=dummy`,
},
wantErrCounter: 4,
},
Expand Down
Loading

0 comments on commit 64b58ad

Please sign in to comment.