From 64b58ad5e667832d396835f9f965f0424168756b Mon Sep 17 00:00:00 2001 From: Kazumichi Yamamoto Date: Tue, 29 Aug 2023 11:15:55 +0900 Subject: [PATCH] go-kit/log -> log/slog (#168) --- collector/auto_backup.go | 19 +++++++------- collector/auto_backup_test.go | 4 +-- collector/bill.go | 13 +++++----- collector/bill_test.go | 2 +- collector/collector_test.go | 13 +++++++--- collector/coupon.go | 13 +++++----- collector/coupon_test.go | 2 +- collector/database.go | 43 ++++++++++++++++---------------- collector/database_test.go | 10 ++++---- collector/esme.go | 19 +++++++------- collector/esme_test.go | 4 +-- collector/exporter.go | 20 +++++++-------- collector/internet.go | 19 +++++++------- collector/internet_test.go | 2 +- collector/loadbalancer.go | 31 +++++++++++------------ collector/loadbalancer_test.go | 6 ++--- collector/local_router.go | 25 +++++++++---------- collector/local_router_test.go | 2 +- collector/mobile_gateway.go | 37 +++++++++++++-------------- collector/mobile_gateway_test.go | 10 ++++---- collector/nfs.go | 31 +++++++++++------------ collector/nfs_test.go | 6 ++--- collector/proxy_lb.go | 25 +++++++++---------- collector/proxy_lb_test.go | 6 ++--- collector/server.go | 43 ++++++++++++++++---------------- collector/server_test.go | 10 ++++---- collector/sim.go | 25 +++++++++---------- collector/sim_test.go | 6 ++--- collector/vpc_router.go | 37 +++++++++++++-------------- collector/vpc_router_test.go | 6 ++--- collector/webaccel.go | 19 +++++++------- collector/zone.go | 13 +++++----- collector/zone_test.go | 2 +- go.mod | 8 +++--- go.sum | 16 +++++++----- includes/go/common.mk | 2 +- main.go | 36 ++++++++++++-------------- 37 files changed, 289 insertions(+), 296 deletions(-) diff --git a/collector/auto_backup.go b/collector/auto_backup.go index 6c522ce..f836578 100644 --- a/collector/auto_backup.go +++ b/collector/auto_backup.go @@ -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" @@ -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 @@ -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"} @@ -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), ) } @@ -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 } diff --git a/collector/auto_backup_test.go b/collector/auto_backup_test.go index e978211..921fccb 100644 --- a/collector/auto_backup_test.go +++ b/collector/auto_backup_test.go @@ -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, }, @@ -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, }, { diff --git a/collector/bill.go b/collector/bill.go index 954f41e..a5c00fb 100644 --- a/collector/bill.go +++ b/collector/bill.go @@ -16,9 +16,8 @@ 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" ) @@ -26,7 +25,7 @@ import ( // BillCollector collects metrics about the account. type BillCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.BillClient @@ -34,7 +33,7 @@ type BillCollector struct { } // 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"} @@ -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 } diff --git a/collector/bill_test.go b/collector/bill_test.go index f041f48..db88296 100644 --- a/collector/bill_test.go +++ b/collector/bill_test.go @@ -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, }, diff --git a/collector/collector_test.go b/collector/collector_test.go index 7bb3933..6b35c5e 100644 --- a/collector/collector_test.go +++ b/collector/collector_test.go @@ -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 { @@ -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"}) diff --git a/collector/coupon.go b/collector/coupon.go index 1bbb5bf..be7d0ca 100644 --- a/collector/coupon.go +++ b/collector/coupon.go @@ -17,10 +17,9 @@ 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" ) @@ -28,7 +27,7 @@ import ( // CouponCollector collects metrics about the account. type CouponCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.CouponClient @@ -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"} @@ -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 } diff --git a/collector/coupon_test.go b/collector/coupon_test.go index 8fa58f7..8e7712f 100644 --- a/collector/coupon_test.go +++ b/collector/coupon_test.go @@ -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, }, diff --git a/collector/database.go b/collector/database.go index 434d3a6..560cd1a 100644 --- a/collector/database.go +++ b/collector/database.go @@ -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" @@ -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 @@ -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"} @@ -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), ) } @@ -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 } @@ -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 } @@ -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 } @@ -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 } @@ -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 } diff --git a/collector/database_test.go b/collector/database_test.go index 644c693..03b25a1 100644 --- a/collector/database_test.go +++ b/collector/database_test.go @@ -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, }, @@ -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, }, diff --git a/collector/esme.go b/collector/esme.go index adcc5a5..438b160 100644 --- a/collector/esme.go +++ b/collector/esme.go @@ -17,10 +17,9 @@ package collector import ( "context" "fmt" + "log/slog" "sync" - "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" @@ -29,7 +28,7 @@ import ( // ESMECollector collects metrics about all esme. type ESMECollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.ESMEClient @@ -38,7 +37,7 @@ type ESMECollector struct { } // NewESMECollector returns a new ESMECollector. -func NewESMECollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.ESMEClient) *ESMECollector { +func NewESMECollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.ESMEClient) *ESMECollector { errors.WithLabelValues("esme").Add(0) labels := []string{"id", "name"} @@ -75,9 +74,9 @@ func (c *ESMECollector) Collect(ch chan<- prometheus.Metric) { searched, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("esme").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list ESME", - "err", err, + c.logger.Warn( + "can't list ESME", + slog.Any("err", err), ) } @@ -126,9 +125,9 @@ func (c *ESMECollector) collectLogs(ch chan<- prometheus.Metric, esme *iaas.ESME logs, err := c.client.Logs(c.ctx, esme.ID) if err != nil { c.errors.WithLabelValues("esme").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't collect logs of the esme[%s]", esme.ID.String()), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't collect logs of the esme[%s]", esme.ID.String()), + slog.Any("err", err), ) return } diff --git a/collector/esme_test.go b/collector/esme_test.go index 2da8db0..812cf32 100644 --- a/collector/esme_test.go +++ b/collector/esme_test.go @@ -68,7 +68,7 @@ func TestESMECollector_Collect(t *testing.T) { in: &dummyESMEClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list ESME" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list ESME" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -101,7 +101,7 @@ func TestESMECollector_Collect(t *testing.T) { }), }, }, - wantLogs: []string{`level=warn msg="can't collect logs of the esme[101]" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't collect logs of the esme[101]" err=dummy`}, wantErrCounter: 1, }, } diff --git a/collector/exporter.go b/collector/exporter.go index 157db8c..a1ed281 100644 --- a/collector/exporter.go +++ b/collector/exporter.go @@ -16,17 +16,16 @@ package collector import ( "context" + "log/slog" "time" - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" "github.com/prometheus/client_golang/prometheus" ) // ExporterCollector collects metrics, mostly runtime, about this exporter in general. type ExporterCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger version string revision string goVersion string @@ -39,7 +38,7 @@ type ExporterCollector struct { // logger, Version, Revision, BuildDate, GoVersion, StartTime // NewExporterCollector returns a new ExporterCollector. -func NewExporterCollector(ctx context.Context, logger log.Logger, version string, revision string, goVersion string, startTime time.Time) *ExporterCollector { +func NewExporterCollector(ctx context.Context, logger *slog.Logger, version string, revision string, goVersion string, startTime time.Time) *ExporterCollector { return &ExporterCollector{ ctx: ctx, logger: logger, @@ -70,12 +69,13 @@ func (c *ExporterCollector) Describe(ch chan<- *prometheus.Desc) { // Collect is called by the Prometheus registry when collecting metrics. func (c *ExporterCollector) Collect(ch chan<- prometheus.Metric) { - level.Debug(c.logger).Log( //nolint - "starttime", c.startTime.Unix(), - "version", c.version, - "revision", c.revision, - "goVersion", c.goVersion, - "startTime", c.startTime, + c.logger.Debug( + "", + slog.Int64("starttime", c.startTime.Unix()), + slog.String("version", c.version), + slog.String("revision", c.revision), + slog.String("goVersion", c.goVersion), + slog.Time("startTime", c.startTime), ) ch <- prometheus.MustNewConstMetric( diff --git a/collector/internet.go b/collector/internet.go index 23c4e55..239d1a0 100644 --- a/collector/internet.go +++ b/collector/internet.go @@ -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/sakuracloud_exporter/platform" ) @@ -29,7 +28,7 @@ import ( // InternetCollector collects metrics about all internets. type InternetCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.InternetClient @@ -40,7 +39,7 @@ type InternetCollector struct { } // NewInternetCollector returns a new InternetCollector. -func NewInternetCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.InternetClient) *InternetCollector { +func NewInternetCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.InternetClient) *InternetCollector { errors.WithLabelValues("internet").Add(0) labels := []string{"id", "name", "zone", "switch_id"} @@ -82,9 +81,9 @@ func (c *InternetCollector) Collect(ch chan<- prometheus.Metric) { internets, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("internet").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list internets", - "err", err, + c.logger.Warn( + "can't list internets", + slog.Any("err", err), ) } @@ -136,9 +135,9 @@ func (c *InternetCollector) collectRouterMetrics(ch chan<- prometheus.Metric, in values, err := c.client.MonitorTraffic(c.ctx, internet.ZoneName, internet.ID, now) if err != nil { c.errors.WithLabelValues("internet").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get internet's traffic metrics: InternetID=%d", internet.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get internet's traffic metrics: InternetID=%d", internet.ID), + slog.Any("err", err), ) return } diff --git a/collector/internet_test.go b/collector/internet_test.go index d0376dc..29900ae 100644 --- a/collector/internet_test.go +++ b/collector/internet_test.go @@ -71,7 +71,7 @@ func TestInternetCollector_Collect(t *testing.T) { in: &dummyInternetClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list internets" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list internets" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, diff --git a/collector/loadbalancer.go b/collector/loadbalancer.go index 0c0aedb..fda2236 100644 --- a/collector/loadbalancer.go +++ b/collector/loadbalancer.go @@ -17,12 +17,11 @@ package collector import ( "context" "fmt" + "log/slog" "strings" "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/iaas-api-go/types" @@ -33,7 +32,7 @@ import ( // LoadBalancerCollector collects metrics about all servers. type LoadBalancerCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.LoadBalancerClient @@ -57,7 +56,7 @@ type LoadBalancerCollector struct { } // NewLoadBalancerCollector returns a new LoadBalancerCollector. -func NewLoadBalancerCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.LoadBalancerClient) *LoadBalancerCollector { +func NewLoadBalancerCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.LoadBalancerClient) *LoadBalancerCollector { errors.WithLabelValues("loadbalancer").Add(0) lbLabels := []string{"id", "name", "zone"} @@ -170,9 +169,9 @@ func (c *LoadBalancerCollector) Collect(ch chan<- prometheus.Metric) { lbs, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("loadbalancer").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list loadbalancers", - "err", err, + c.logger.Warn( + "can't list loadbalancers", + slog.Any("err", err), ) } @@ -353,9 +352,9 @@ func (c *LoadBalancerCollector) collectNICMetrics(ch chan<- prometheus.Metric, l values, err := c.client.MonitorNIC(c.ctx, lb.ZoneName, lb.ID, now) if err != nil { c.errors.WithLabelValues("loadbalancer").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get loadbalancer's NIC metrics: ID=%d", lb.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get loadbalancer's NIC metrics: ID=%d", lb.ID), + slog.Any("err", err), ) return } @@ -410,9 +409,9 @@ func (c *LoadBalancerCollector) collectLBStatus(ch chan<- prometheus.Metric, lb status, err := c.client.Status(c.ctx, lb.ZoneName, lb.ID) if err != nil { c.errors.WithLabelValues("loadbalancer").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't fetch loadbalancer's status: ID: %d", lb.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't fetch loadbalancer's status: ID: %d", lb.ID), + slog.Any("err", err), ) return } @@ -497,9 +496,9 @@ func (c *LoadBalancerCollector) collectMaintenanceInfo(ch chan<- prometheus.Metr info, err := c.client.MaintenanceInfo(resource.InstanceHostInfoURL) if err != nil { c.errors.WithLabelValues("loadbalancer").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get lb's maintenance info: ID=%d", resource.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get lb's maintenance info: ID=%d", resource.ID), + slog.Any("err", err), ) return } diff --git a/collector/loadbalancer_test.go b/collector/loadbalancer_test.go index e2a6dfd..b41e724 100644 --- a/collector/loadbalancer_test.go +++ b/collector/loadbalancer_test.go @@ -93,7 +93,7 @@ func TestLoadBalancerCollector_Collect(t *testing.T) { in: &dummyLoadBalancerClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list loadbalancers" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list loadbalancers" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -446,8 +446,8 @@ func TestLoadBalancerCollector_Collect(t *testing.T) { }, }, wantLogs: []string{ - `level=warn msg="can't fetch loadbalancer's status: ID: 101" err=dummy1`, - `level=warn msg="can't get loadbalancer's NIC metrics: ID=101" err=dummy2`, + `level=WARN msg="can't fetch loadbalancer's status: ID: 101" err=dummy1`, + `level=WARN msg="can't get loadbalancer's NIC metrics: ID=101" err=dummy2`, }, wantErrCounter: 2, }, diff --git a/collector/local_router.go b/collector/local_router.go index d594e4d..d422f31 100644 --- a/collector/local_router.go +++ b/collector/local_router.go @@ -17,12 +17,11 @@ package collector import ( "context" "fmt" + "log/slog" "strings" "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/iaas-api-go/types" @@ -32,7 +31,7 @@ import ( // LocalRouterCollector collects metrics about all localRouters. type LocalRouterCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.LocalRouterClient @@ -49,7 +48,7 @@ type LocalRouterCollector struct { } // NewLocalRouterCollector returns a new LocalRouterCollector. -func NewLocalRouterCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.LocalRouterClient) *LocalRouterCollector { +func NewLocalRouterCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.LocalRouterClient) *LocalRouterCollector { errors.WithLabelValues("local_router").Add(0) localRouterLabels := []string{"id", "name"} @@ -132,9 +131,9 @@ func (c *LocalRouterCollector) Collect(ch chan<- prometheus.Metric) { localRouters, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("local_router").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list localRouters", - "err", err, + c.logger.Warn( + "can't list localRouters", + slog.Any("err", err), ) } @@ -251,9 +250,9 @@ func (c *LocalRouterCollector) collectPeerInfo(ch chan<- prometheus.Metric, loca healthStatus, err := c.client.Health(c.ctx, localRouter.ID) if err != nil { c.errors.WithLabelValues("local_router").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't read health status of the localRouter[%s]", localRouter.ID.String()), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't read health status of the localRouter[%s]", localRouter.ID.String()), + slog.Any("err", err), ) return } @@ -320,9 +319,9 @@ func (c *LocalRouterCollector) collectLocalRouterMetrics(ch chan<- prometheus.Me values, err := c.client.Monitor(c.ctx, localRouter.ID, now) if err != nil { c.errors.WithLabelValues("local_router").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get localRouter's metrics: LocalRouterID=%d", localRouter.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get localRouter's metrics: LocalRouterID=%d", localRouter.ID), + slog.Any("err", err), ) return } diff --git a/collector/local_router_test.go b/collector/local_router_test.go index 5d203fb..9ab07b9 100644 --- a/collector/local_router_test.go +++ b/collector/local_router_test.go @@ -83,7 +83,7 @@ func TestLocalRouterCollector_Collect(t *testing.T) { in: &dummyLocalRouterClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list localRouters" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list localRouters" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, diff --git a/collector/mobile_gateway.go b/collector/mobile_gateway.go index c560c7a..b20471d 100644 --- a/collector/mobile_gateway.go +++ b/collector/mobile_gateway.go @@ -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/packages-go/newsfeed" "github.com/sacloud/sakuracloud_exporter/platform" @@ -30,7 +29,7 @@ import ( // MobileGatewayCollector collects metrics about all servers. type MobileGatewayCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.MobileGatewayClient @@ -52,7 +51,7 @@ type MobileGatewayCollector struct { } // NewMobileGatewayCollector returns a new MobileGatewayCollector. -func NewMobileGatewayCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.MobileGatewayClient) *MobileGatewayCollector { +func NewMobileGatewayCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.MobileGatewayClient) *MobileGatewayCollector { errors.WithLabelValues("mobile_gateway").Add(0) mobileGatewayLabels := []string{"id", "name", "zone"} @@ -151,9 +150,9 @@ func (c *MobileGatewayCollector) Collect(ch chan<- prometheus.Metric) { mobileGateways, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("mobile_gateway").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list mobile_gateways", - "err", err, + c.logger.Warn( + "can't list mobile_gateways", + slog.Any("err", err), ) } @@ -284,9 +283,9 @@ func (c *MobileGatewayCollector) collectTrafficControlInfo(ch chan<- prometheus. info, err := c.client.TrafficControl(c.ctx, mobileGateway.ZoneName, mobileGateway.ID) if err != nil { c.errors.WithLabelValues("mobile_gateway").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get mobile_gateway's traffic control config: ID=%d", mobileGateway.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get mobile_gateway's traffic control config: ID=%d", mobileGateway.ID), + slog.Any("err", err), ) return } @@ -332,9 +331,9 @@ func (c *MobileGatewayCollector) collectTrafficStatus(ch chan<- prometheus.Metri status, err := c.client.TrafficStatus(c.ctx, mobileGateway.ZoneName, mobileGateway.ID) if err != nil { c.errors.WithLabelValues("mobile_gateway").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get mobile_gateway's traffic status: ID=%d", mobileGateway.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get mobile_gateway's traffic status: ID=%d", mobileGateway.ID), + slog.Any("err", err), ) return } @@ -372,9 +371,9 @@ func (c *MobileGatewayCollector) collectNICMetrics(ch chan<- prometheus.Metric, values, err := c.client.MonitorNIC(c.ctx, mobileGateway.ZoneName, mobileGateway.ID, index, now) if err != nil { c.errors.WithLabelValues("mobile_gateway").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get mobile_gateway's receive bytes: ID=%d, NICIndex=%d", mobileGateway.ID, index), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get mobile_gateway's receive bytes: ID=%d, NICIndex=%d", mobileGateway.ID, index), + slog.Any("err", err), ) return } @@ -426,9 +425,9 @@ func (c *MobileGatewayCollector) collectMaintenanceInfo(ch chan<- prometheus.Met info, err := c.client.MaintenanceInfo(resource.InstanceHostInfoURL) if err != nil { c.errors.WithLabelValues("mobile_gateway").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get mobile gateway's maintenance info: ID=%d", resource.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get mobile gateway's maintenance info: ID=%d", resource.ID), + slog.Any("err", err), ) return } diff --git a/collector/mobile_gateway_test.go b/collector/mobile_gateway_test.go index f820a27..8a17a90 100644 --- a/collector/mobile_gateway_test.go +++ b/collector/mobile_gateway_test.go @@ -95,7 +95,7 @@ func TestMobileGatewayCollector_Collect(t *testing.T) { in: &dummyMobileGatewayClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list mobile_gateways" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list mobile_gateways" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -470,10 +470,10 @@ func TestMobileGatewayCollector_Collect(t *testing.T) { }, }, wantLogs: []string{ - `level=warn msg="can't get mobile_gateway's receive bytes: ID=101, NICIndex=0" err=dummy3`, - `level=warn msg="can't get mobile_gateway's receive bytes: ID=101, NICIndex=1" err=dummy3`, - `level=warn msg="can't get mobile_gateway's traffic control config: ID=101" err=dummy1`, - `level=warn msg="can't get mobile_gateway's traffic status: ID=101" err=dummy2`, + `level=WARN msg="can't get mobile_gateway's receive bytes: ID=101, NICIndex=0" err=dummy3`, + `level=WARN msg="can't get mobile_gateway's receive bytes: ID=101, NICIndex=1" err=dummy3`, + `level=WARN msg="can't get mobile_gateway's traffic control config: ID=101" err=dummy1`, + `level=WARN msg="can't get mobile_gateway's traffic status: ID=101" err=dummy2`, }, wantErrCounter: 4, // traffic control + traffic status + nic monitor*2 }, diff --git a/collector/nfs.go b/collector/nfs.go index 52c125c..24e16eb 100644 --- a/collector/nfs.go +++ b/collector/nfs.go @@ -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/packages-go/newsfeed" "github.com/sacloud/sakuracloud_exporter/platform" @@ -30,7 +29,7 @@ import ( // NFSCollector collects metrics about all nfss. type NFSCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.NFSClient @@ -50,7 +49,7 @@ type NFSCollector struct { } // NewNFSCollector returns a new NFSCollector. -func NewNFSCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.NFSClient) *NFSCollector { +func NewNFSCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.NFSClient) *NFSCollector { errors.WithLabelValues("nfs").Add(0) nfsLabels := []string{"id", "name", "zone"} @@ -136,9 +135,9 @@ func (c *NFSCollector) Collect(ch chan<- prometheus.Metric) { nfss, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("nfs").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list nfs", - "err", err, + c.logger.Warn( + "can't list nfs", + slog.Any("err", err), ) } @@ -276,9 +275,9 @@ func (c *NFSCollector) collectFreeDiskSize(ch chan<- prometheus.Metric, nfs *pla values, err := c.client.MonitorFreeDiskSize(c.ctx, nfs.ZoneName, nfs.ID, now) if err != nil { c.errors.WithLabelValues("nfs").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get disk's free size: NFSID=%d", nfs.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get disk's free size: NFSID=%d", nfs.ID), + slog.Any("err", err), ) return } @@ -304,9 +303,9 @@ func (c *NFSCollector) collectNICMetrics(ch chan<- prometheus.Metric, nfs *platf values, err := c.client.MonitorNIC(c.ctx, nfs.ZoneName, nfs.ID, now) if err != nil { c.errors.WithLabelValues("nfs").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get nfs's NIC metrics: NFSID=%d", nfs.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get nfs's NIC metrics: NFSID=%d", nfs.ID), + slog.Any("err", err), ) return } @@ -358,9 +357,9 @@ func (c *NFSCollector) collectMaintenanceInfo(ch chan<- prometheus.Metric, resou info, err := c.client.MaintenanceInfo(resource.InstanceHostInfoURL) if err != nil { c.errors.WithLabelValues("nfs").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get nfs's maintenance info: ID=%d", resource.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get nfs's maintenance info: ID=%d", resource.ID), + slog.Any("err", err), ) return } diff --git a/collector/nfs_test.go b/collector/nfs_test.go index f02c594..8d62d34 100644 --- a/collector/nfs_test.go +++ b/collector/nfs_test.go @@ -89,7 +89,7 @@ func TestNFSCollector_Collect(t *testing.T) { in: &dummyNFSClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list nfs" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list nfs" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -355,8 +355,8 @@ func TestNFSCollector_Collect(t *testing.T) { }, }, wantLogs: []string{ - `level=warn msg="can't get disk's free size: NFSID=101" err=dummy1`, - `level=warn msg="can't get nfs's NIC metrics: NFSID=101" err=dummy2`, + `level=WARN msg="can't get disk's free size: NFSID=101" err=dummy1`, + `level=WARN msg="can't get nfs's NIC metrics: NFSID=101" err=dummy2`, }, wantErrCounter: 2, }, diff --git a/collector/proxy_lb.go b/collector/proxy_lb.go index 4493e5e..edc8cd7 100644 --- a/collector/proxy_lb.go +++ b/collector/proxy_lb.go @@ -19,11 +19,10 @@ import ( "crypto/x509" "encoding/pem" "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" "github.com/sacloud/sakuracloud_exporter/platform" @@ -32,7 +31,7 @@ import ( // ProxyLBCollector collects metrics about all proxyLBs. type ProxyLBCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.ProxyLBClient @@ -51,7 +50,7 @@ type ProxyLBCollector struct { } // NewProxyLBCollector returns a new ProxyLBCollector. -func NewProxyLBCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.ProxyLBClient) *ProxyLBCollector { +func NewProxyLBCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.ProxyLBClient) *ProxyLBCollector { errors.WithLabelValues("proxylb").Add(0) proxyLBLabels := []string{"id", "name"} @@ -129,9 +128,9 @@ func (c *ProxyLBCollector) Collect(ch chan<- prometheus.Metric) { proxyLBs, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("proxylb").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list proxyLBs", - "err", err, + c.logger.Warn( + "can't list proxyLBs", + slog.Any("err", err), ) } @@ -270,9 +269,9 @@ func (c *ProxyLBCollector) collectProxyLBCertInfo(ch chan<- prometheus.Metric, p cert, err := c.client.GetCertificate(c.ctx, proxyLB.ID) if err != nil { c.errors.WithLabelValues("proxylb").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get certificate: proxyLB=%d", proxyLB.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get certificate: proxyLB=%d", proxyLB.ID), + slog.Any("err", err), ) return } @@ -347,9 +346,9 @@ func (c *ProxyLBCollector) collectProxyLBMetrics(ch chan<- prometheus.Metric, pr values, err := c.client.Monitor(c.ctx, proxyLB.ID, now) if err != nil { c.errors.WithLabelValues("proxylb").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get proxyLB's metrics: ProxyLBID=%d", proxyLB.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get proxyLB's metrics: ProxyLBID=%d", proxyLB.ID), + slog.Any("err", err), ) return } diff --git a/collector/proxy_lb_test.go b/collector/proxy_lb_test.go index 60a365f..ef0bfd4 100644 --- a/collector/proxy_lb_test.go +++ b/collector/proxy_lb_test.go @@ -82,7 +82,7 @@ func TestProxyLBCollector_Collect(t *testing.T) { in: &dummyProxyLBClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list proxyLBs" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list proxyLBs" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -324,8 +324,8 @@ func TestProxyLBCollector_Collect(t *testing.T) { }, wantErrCounter: 2, wantLogs: []string{ - `level=warn msg="can't get certificate: proxyLB=101" err=dummy2`, - `level=warn msg="can't get proxyLB's metrics: ProxyLBID=101" err=dummy3`, + `level=WARN msg="can't get certificate: proxyLB=101" err=dummy2`, + `level=WARN msg="can't get proxyLB's metrics: ProxyLBID=101" err=dummy3`, }, }, } diff --git a/collector/server.go b/collector/server.go index e8eb2ca..4463ae3 100644 --- a/collector/server.go +++ b/collector/server.go @@ -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" @@ -31,7 +30,7 @@ import ( // ServerCollector collects metrics about all servers. type ServerCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.ServerClient maintOnly bool @@ -58,7 +57,7 @@ type ServerCollector struct { } // NewServerCollector returns a new ServerCollector. -func NewServerCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.ServerClient, maintenanceOnly bool) *ServerCollector { +func NewServerCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.ServerClient, maintenanceOnly bool) *ServerCollector { errors.WithLabelValues("server").Add(0) serverLabels := []string{"id", "name", "zone"} @@ -187,9 +186,9 @@ func (c *ServerCollector) Collect(ch chan<- prometheus.Metric) { servers, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("server").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list servers", - "err", err, + c.logger.Warn( + "can't list servers", + slog.Any("err", err), ) } @@ -379,9 +378,9 @@ func (c *ServerCollector) collectDiskInfo(ch chan<- prometheus.Metric, server *p disk, err := c.client.ReadDisk(c.ctx, server.ZoneName, server.Disks[index].ID) if err != nil { c.errors.WithLabelValues("server").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get server connected disk info: ID=%d, DiskID=%d", server.ID, server.Disks[index].ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get server connected disk info: ID=%d, DiskID=%d", server.ID, server.Disks[index].ID), + slog.Any("err", err), ) return } @@ -453,9 +452,9 @@ func (c *ServerCollector) collectCPUTime(ch chan<- prometheus.Metric, server *pl values, err := c.client.MonitorCPU(c.ctx, server.ZoneName, server.ID, now) if err != nil { c.errors.WithLabelValues("server").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get server's CPU-TIME: ID=%d", server.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get server's CPU-TIME: ID=%d", server.ID), + slog.Any("err", err), ) return } @@ -482,9 +481,9 @@ func (c *ServerCollector) collectDiskMetrics(ch chan<- prometheus.Metric, server values, err := c.client.MonitorDisk(c.ctx, server.ZoneName, disk.ID, now) if err != nil { c.errors.WithLabelValues("server").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get disk's metrics: ServerID=%d, DiskID=%d", server.ID, disk.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get disk's metrics: ServerID=%d, DiskID=%d", server.ID, disk.ID), + slog.Any("err", err), ) return } @@ -526,9 +525,9 @@ func (c *ServerCollector) collectNICMetrics(ch chan<- prometheus.Metric, server values, err := c.client.MonitorNIC(c.ctx, server.ZoneName, nic.ID, now) if err != nil { c.errors.WithLabelValues("server").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get nic's metrics: ServerID=%d,NICID=%d", server.ID, nic.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get nic's metrics: ServerID=%d,NICID=%d", server.ID, nic.ID), + slog.Any("err", err), ) return } @@ -568,9 +567,9 @@ func (c *ServerCollector) collectMaintenanceInfo(ch chan<- prometheus.Metric, se info, err := c.client.MaintenanceInfo(server.InstanceHostInfoURL) if err != nil { c.errors.WithLabelValues("server").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get server's maintenance info: ServerID=%d", server.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get server's maintenance info: ServerID=%d", server.ID), + slog.Any("err", err), ) return } diff --git a/collector/server_test.go b/collector/server_test.go index 67ceb7d..7f36e58 100644 --- a/collector/server_test.go +++ b/collector/server_test.go @@ -146,7 +146,7 @@ func TestServerCollector_Collect(t *testing.T) { in: &dummyServerClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list servers" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list servers" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -419,9 +419,9 @@ func TestServerCollector_Collect(t *testing.T) { }, wantErrCounter: 3, wantLogs: []string{ - `level=warn msg="can't get disk's metrics: ServerID=101, DiskID=201" err=dummy2`, - `level=warn msg="can't get nic's metrics: ServerID=101,NICID=301" err=dummy3`, - `level=warn msg="can't get server's CPU-TIME: ID=101" err=dummy1`, + `level=WARN msg="can't get disk's metrics: ServerID=101, DiskID=201" err=dummy2`, + `level=WARN msg="can't get nic's metrics: ServerID=101,NICID=301" err=dummy3`, + `level=WARN msg="can't get server's CPU-TIME: ID=101" err=dummy1`, }, }, { @@ -601,7 +601,7 @@ func TestServerCollector_CollectMaintenanceOnly(t *testing.T) { in: &dummyServerClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list servers" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list servers" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, diff --git a/collector/sim.go b/collector/sim.go index 907a56e..35969f3 100644 --- a/collector/sim.go +++ b/collector/sim.go @@ -17,12 +17,11 @@ package collector import ( "context" "fmt" + "log/slog" "strings" "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" @@ -31,7 +30,7 @@ import ( // SIMCollector collects metrics about all sims. type SIMCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.SIMClient @@ -43,7 +42,7 @@ type SIMCollector struct { } // NewSIMCollector returns a new SIMCollector. -func NewSIMCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.SIMClient) *SIMCollector { +func NewSIMCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.SIMClient) *SIMCollector { errors.WithLabelValues("sim").Add(0) simLabels := []string{"id", "name"} @@ -94,9 +93,9 @@ func (c *SIMCollector) Collect(ch chan<- prometheus.Metric) { sims, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("sim").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list sims", - "err", err, + c.logger.Warn( + "can't list sims", + slog.Any("err", err), ) } @@ -152,9 +151,9 @@ func (c *SIMCollector) collectSIMInfo(ch chan<- prometheus.Metric, sim *iaas.SIM simConfigs, err := c.client.GetNetworkOperatorConfig(c.ctx, sim.ID) if err != nil { c.errors.WithLabelValues("sim").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get sim's network operator config: SIMID=%d", sim.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get sim's network operator config: SIMID=%d", sim.ID), + slog.Any("err", err), ) return } @@ -207,9 +206,9 @@ func (c *SIMCollector) collectSIMMetrics(ch chan<- prometheus.Metric, sim *iaas. values, err := c.client.MonitorTraffic(c.ctx, sim.ID, now) if err != nil { c.errors.WithLabelValues("sim").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get sim's metrics: SIMID=%d", sim.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get sim's metrics: SIMID=%d", sim.ID), + slog.Any("err", err), ) return } diff --git a/collector/sim_test.go b/collector/sim_test.go index 4183a50..59035e7 100644 --- a/collector/sim_test.go +++ b/collector/sim_test.go @@ -76,7 +76,7 @@ func TestSIMCollector_Collect(t *testing.T) { in: &dummySIMClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list sims" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list sims" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -194,8 +194,8 @@ func TestSIMCollector_Collect(t *testing.T) { }, wantErrCounter: 2, wantLogs: []string{ - `level=warn msg="can't get sim's metrics: SIMID=101" err=dummy2`, - `level=warn msg="can't get sim's network operator config: SIMID=101" err=dummy1`, + `level=WARN msg="can't get sim's metrics: SIMID=101" err=dummy2`, + `level=WARN msg="can't get sim's network operator config: SIMID=101" err=dummy1`, }, }, } diff --git a/collector/vpc_router.go b/collector/vpc_router.go index 9d936c6..6e25a5a 100644 --- a/collector/vpc_router.go +++ b/collector/vpc_router.go @@ -17,12 +17,11 @@ package collector import ( "context" "fmt" + "log/slog" "strings" "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/iaas-api-go/types" @@ -33,7 +32,7 @@ import ( // VPCRouterCollector collects metrics about all servers. type VPCRouterCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.VPCRouterClient @@ -58,7 +57,7 @@ type VPCRouterCollector struct { } // NewVPCRouterCollector returns a new VPCRouterCollector. -func NewVPCRouterCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.VPCRouterClient) *VPCRouterCollector { +func NewVPCRouterCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.VPCRouterClient) *VPCRouterCollector { errors.WithLabelValues("vpc_router").Add(0) vpcRouterLabels := []string{"id", "name", "zone"} @@ -176,9 +175,9 @@ func (c *VPCRouterCollector) Collect(ch chan<- prometheus.Metric) { vpcRouters, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("vpc_router").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't list vpc routers", - "err", err, + c.logger.Warn( + "can't list vpc routers", + slog.Any("err", err), ) } @@ -225,9 +224,9 @@ func (c *VPCRouterCollector) Collect(ch chan<- prometheus.Metric) { status, err := c.client.Status(c.ctx, vpcRouter.ZoneName, vpcRouter.ID) if err != nil { c.errors.WithLabelValues("vpc_router").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't fetch vpc_router's status", - "err", err, + c.logger.Warn( + "can't fetch vpc_router's status", + slog.Any("err", err), ) return } @@ -447,9 +446,9 @@ func (c *VPCRouterCollector) collectNICMetrics(ch chan<- prometheus.Metric, vpcR values, err := c.client.MonitorNIC(c.ctx, vpcRouter.ZoneName, vpcRouter.ID, index, now) if err != nil { c.errors.WithLabelValues("vpc_router").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get vpc_router's receive bytes: ID=%d, NICIndex=%d", vpcRouter.ID, index), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get vpc_router's receive bytes: ID=%d, NICIndex=%d", vpcRouter.ID, index), + slog.Any("err", err), ) return } @@ -486,9 +485,9 @@ func (c *VPCRouterCollector) collectCPUTime(ch chan<- prometheus.Metric, vpcRout values, err := c.client.MonitorCPU(c.ctx, vpcRouter.ZoneName, vpcRouter.ID, now) if err != nil { c.errors.WithLabelValues("server").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get server's CPU-TIME: ID=%d", vpcRouter.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get server's CPU-TIME: ID=%d", vpcRouter.ID), + slog.Any("err", err), ) return } @@ -525,9 +524,9 @@ func (c *VPCRouterCollector) collectMaintenanceInfo(ch chan<- prometheus.Metric, info, err := c.client.MaintenanceInfo(resource.InstanceHostInfoURL) if err != nil { c.errors.WithLabelValues("vpc_router").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", fmt.Sprintf("can't get vpc router's maintenance info: ID=%d", resource.ID), - "err", err, + c.logger.Warn( + fmt.Sprintf("can't get vpc router's maintenance info: ID=%d", resource.ID), + slog.Any("err", err), ) return } diff --git a/collector/vpc_router_test.go b/collector/vpc_router_test.go index b6fee9b..c1cd010 100644 --- a/collector/vpc_router_test.go +++ b/collector/vpc_router_test.go @@ -99,7 +99,7 @@ func TestVPCRouterCollector_Collect(t *testing.T) { in: &dummyVPCRouterClient{ findErr: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't list vpc routers" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't list vpc routers" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, @@ -406,8 +406,8 @@ func TestVPCRouterCollector_Collect(t *testing.T) { }, }, wantLogs: []string{ - `level=warn msg="can't fetch vpc_router's status" err=dummy1`, - `level=warn msg="can't get vpc_router's receive bytes: ID=101, NICIndex=0" err=dummy2`, + `level=WARN msg="can't fetch vpc_router's status" err=dummy1`, + `level=WARN msg="can't get vpc_router's receive bytes: ID=101, NICIndex=0" err=dummy2`, }, wantErrCounter: 2, }, diff --git a/collector/webaccel.go b/collector/webaccel.go index 3006f36..10e24d0 100644 --- a/collector/webaccel.go +++ b/collector/webaccel.go @@ -16,9 +16,8 @@ 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" ) @@ -26,7 +25,7 @@ import ( // WebAccelCollector collects metrics about the webaccel's sites. type WebAccelCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.WebAccelClient @@ -42,7 +41,7 @@ type WebAccelCollector struct { } // NewWebAccelCollector returns a new WebAccelCollector. -func NewWebAccelCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.WebAccelClient) *WebAccelCollector { +func NewWebAccelCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.WebAccelClient) *WebAccelCollector { errors.WithLabelValues("webaccel").Add(0) labels := []string{"id"} @@ -113,9 +112,9 @@ func (c *WebAccelCollector) Collect(ch chan<- prometheus.Metric) { sites, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("webaccel").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't get webAccel info", - "err", err, + c.logger.Warn( + "can't get webAccel info", + slog.Any("err", err), ) return } @@ -149,9 +148,9 @@ func (c *WebAccelCollector) Collect(ch chan<- prometheus.Metric) { usage, err := c.client.Usage(c.ctx) if err != nil { c.errors.WithLabelValues("webaccel").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't get webAccel monthly usage", - "err", err, + c.logger.Warn( + "can't get webAccel monthly usage", + slog.Any("err", err), ) return } diff --git a/collector/zone.go b/collector/zone.go index 64b24e3..43679aa 100644 --- a/collector/zone.go +++ b/collector/zone.go @@ -16,9 +16,8 @@ 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" ) @@ -26,7 +25,7 @@ import ( // ZoneCollector collects metrics about the account. type ZoneCollector struct { ctx context.Context - logger log.Logger + logger *slog.Logger errors *prometheus.CounterVec client platform.ZoneClient @@ -34,7 +33,7 @@ type ZoneCollector struct { } // NewZoneCollector returns a new ZoneCollector. -func NewZoneCollector(ctx context.Context, logger log.Logger, errors *prometheus.CounterVec, client platform.ZoneClient) *ZoneCollector { +func NewZoneCollector(ctx context.Context, logger *slog.Logger, errors *prometheus.CounterVec, client platform.ZoneClient) *ZoneCollector { errors.WithLabelValues("zone").Add(0) labels := []string{"id", "name", "description", "region_id", "region_name"} @@ -63,9 +62,9 @@ func (c *ZoneCollector) Collect(ch chan<- prometheus.Metric) { zones, err := c.client.Find(c.ctx) if err != nil { c.errors.WithLabelValues("zone").Add(1) - level.Warn(c.logger).Log( //nolint - "msg", "can't get zone info", - "err", err, + c.logger.Warn( + "can't get zone info", + slog.Any("err", err), ) return } diff --git a/collector/zone_test.go b/collector/zone_test.go index ee7c6ec..a874251 100644 --- a/collector/zone_test.go +++ b/collector/zone_test.go @@ -57,7 +57,7 @@ func TestZoneCollector_Collect(t *testing.T) { in: &dummyZoneClient{ err: errors.New("dummy"), }, - wantLogs: []string{`level=warn msg="can't get zone info" err=dummy`}, + wantLogs: []string{`level=WARN msg="can't get zone info" err=dummy`}, wantErrCounter: 1, wantMetrics: nil, }, diff --git a/go.mod b/go.mod index 89c0ad3..8218bfe 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,6 @@ module github.com/sacloud/sakuracloud_exporter require ( github.com/alexflint/go-arg v1.4.3 - github.com/go-kit/kit v0.12.0 github.com/prometheus/client_golang v1.16.0 github.com/prometheus/client_model v0.4.0 github.com/sacloud/api-client-go v0.2.8 @@ -22,19 +21,21 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudflare/circl v1.3.3 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/fatih/color v1.12.0 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-kit/log v0.2.1 // indirect - github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-hclog v0.16.2 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.2 // indirect github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/hc-install v0.5.2 // indirect github.com/hashicorp/terraform-exec v0.18.1 // indirect github.com/hashicorp/terraform-json v0.15.0 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -43,6 +44,7 @@ require ( github.com/prometheus/procfs v0.10.1 // indirect github.com/sacloud/go-http v0.1.6 // indirect github.com/zclconf/go-cty v1.13.0 // indirect + go.uber.org/atomic v1.9.0 // indirect go.uber.org/ratelimit v0.2.0 // indirect golang.org/x/crypto v0.9.0 // indirect golang.org/x/mod v0.10.0 // indirect diff --git a/go.sum b/go.sum index 9015e2b..ffe28ee 100644 --- a/go.sum +++ b/go.sum @@ -26,6 +26,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= @@ -38,12 +39,6 @@ github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8 github.com/go-git/go-billy/v5 v5.4.1/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= github.com/go-git/go-git/v5 v5.6.1 h1:q4ZRqQl4pR/ZJHc1L5CFjGA1a10u76aV1iC+nh+bHsk= github.com/go-git/go-git/v5 v5.6.1/go.mod h1:mvyoL6Unz0PiTQrGQfSfiLFhBH1c1e84ylC2MDs4ee8= -github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= -github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= -github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -88,8 +83,12 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= @@ -168,8 +167,13 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= diff --git a/includes/go/common.mk b/includes/go/common.mk index f005c51..8f3efea 100644 --- a/includes/go/common.mk +++ b/includes/go/common.mk @@ -19,7 +19,7 @@ COPYRIGHT_YEAR ?= 2022 COPYRIGHT_FILES ?= $$(find . -name "*.go" -print | grep -v "/vendor/") GO ?= go DEFAULT_GOALS ?= fmt set-license go-licenses-check goimports lint test -GOLANG_CI_LINT_VERSION ?= v1.51.2 +GOLANG_CI_LINT_VERSION ?= v1.54.2 TEXTLINT_ACTION_VERSION ?= v0.0.3 .DEFAULT_GOAL = default diff --git a/main.go b/main.go index ddefafa..5bc1b7e 100644 --- a/main.go +++ b/main.go @@ -18,13 +18,12 @@ import ( "context" "errors" "fmt" + "log/slog" "net/http" "os" "runtime" "time" - "github.com/go-kit/kit/log" - "github.com/go-kit/kit/log/level" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/sacloud/sakuracloud_exporter/collector" @@ -50,24 +49,21 @@ func main() { os.Exit(1) } - filterOption := level.AllowInfo() + level := slog.LevelInfo if c.Debug { - filterOption = level.AllowDebug() + level = slog.LevelDebug } - logger := log.NewLogfmtLogger(log.NewSyncWriter(os.Stderr)) - logger = level.NewFilter(logger, filterOption) - logger = log.With(logger, - "ts", log.DefaultTimestampUTC, - "caller", log.DefaultCaller, - ) + logger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{ + Level: level, + })) - level.Info(logger).Log( //nolint - "msg", "starting sakuracloud_exporter", - "rate-limit", c.RateLimit, - "version", Version, - "revision", Revision, - "goVersion", GoVersion, + logger.Info( + "starting sakuracloud_exporter", + slog.Int("rate-limit", c.RateLimit), + slog.String("version", Version), + slog.String("revision", Revision), + slog.String("goVersion", GoVersion), ) client := platform.NewSakuraCloudClient(c, Version) @@ -77,7 +73,7 @@ func main() { panic(errors.New("unauthorized: invalid API key is applied")) } if !c.NoCollectorWebAccel && !client.HasWebAccelPermission(ctx) { - logger.Log("warn", "API key doesn't have webaccel permission") //nolint + logger.Warn("API key doesn't have webaccel permission") } errs := prometheus.NewCounterVec(prometheus.CounterOpts{ @@ -161,10 +157,10 @@ func main() { `)) }) - level.Info(logger).Log("msg", "listening", "addr", c.WebAddr) //nolint - if err := http.ListenAndServe(c.WebAddr, nil); err != nil { //nolint + logger.Info("listening", slog.String("addr", c.WebAddr)) + if err := http.ListenAndServe(c.WebAddr, nil); err != nil { //nolint cancel() - level.Error(logger).Log("msg", "http listenandserve error", "err", err) //nolint + logger.Error("http listenandserve error", slog.Any("err", err)) os.Exit(2) } }