diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f57dcb2c..771bb864 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: # renovate: golang=go - go-version: '1.26.2' + go-version: '1.26.3' - name: Test run: make test @@ -48,7 +48,7 @@ jobs: - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: # renovate: golang=go - go-version: '1.26.2' + go-version: '1.26.3' - name: Install promtool run: | @@ -88,11 +88,11 @@ jobs: - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: # renovate: golang=go - go-version: '1.26.2' + go-version: '1.26.3' - name: golangci-lint uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0 with: # renovate: github=golangci/golangci-lint - version: v2.11.4 + version: v2.12.2 args: "--max-same-issues=0" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9731a4bd..7516337f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,7 @@ jobs: - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: # renovate: golang=go - go-version: '1.26.2' + go-version: '1.26.3' - name: Install WiX run: | diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml index a555e4cb..3d8686ba 100644 --- a/.github/workflows/spelling.yml +++ b/.github/workflows/spelling.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - uses: codespell-project/actions-codespell@cf810cf4cbd6cdefe6ef86e55b64d524a16654a7 # master + - uses: codespell-project/actions-codespell@4848b4c0f038a77b5a64504a5e93b8fae962bc66 # master with: check_filenames: true # When using this Action in other repos, the --skip option below can be removed diff --git a/internal/collector/logical_disk/logical_disk.go b/internal/collector/logical_disk/logical_disk.go index aaa8e5c0..849efbb8 100644 --- a/internal/collector/logical_disk/logical_disk.go +++ b/internal/collector/logical_disk/logical_disk.go @@ -753,7 +753,7 @@ func getAllMountedVolumes() (map[string]string, error) { func (c *Collector) workerBitlocker(ctx context.Context, initErrCh chan<- error) { defer func() { if r := recover(); r != nil { - c.logger.Error("workerBitlocker panic", + c.logger.ErrorContext(ctx, "workerBitlocker panic", slog.Any("panic", r), slog.String("stack", string(debug.Stack())), ) @@ -764,7 +764,7 @@ func (c *Collector) workerBitlocker(ctx context.Context, initErrCh chan<- error) go c.workerBitlocker(ctx, initErrCh) if err := <-initErrCh; err != nil { - c.logger.Error("workerBitlocker restart failed", + c.logger.ErrorContext(ctx, "workerBitlocker restart failed", slog.Any("err", err), ) } diff --git a/internal/collector/performancecounter/performancecounter_test_test.go b/internal/collector/performancecounter/performancecounter_test_test.go index 2354c23b..acd7c178 100644 --- a/internal/collector/performancecounter/performancecounter_test_test.go +++ b/internal/collector/performancecounter/performancecounter_test_test.go @@ -19,7 +19,6 @@ package performancecounter_test import ( "fmt" - "io" "log/slog" "net/http" "net/http/httptest" @@ -189,7 +188,7 @@ windows_performancecounter_processor_information_processor_time\{core="0,0",stat }, }) - logger := slog.New(slog.NewTextHandler(io.Discard, nil)) + logger := slog.New(slog.DiscardHandler) err := perfDataCollector.Build(logger, nil) if tc.buildErr != "" { diff --git a/internal/collector/process/process_worker.go b/internal/collector/process/process_worker.go index a7e6652b..338dd7fd 100644 --- a/internal/collector/process/process_worker.go +++ b/internal/collector/process/process_worker.go @@ -129,7 +129,7 @@ func (c *Collector) collectWorker() { cmdLine, processOwner, processGroupID, err := c.getProcessInformation(uint32(pid)) if err != nil { - slog.LogAttrs(context.Background(), slog.LevelDebug, "Failed to get process information", + c.logger.LogAttrs(context.Background(), slog.LevelDebug, "Failed to get process information", slog.Uint64("pid", pid), slog.Any("err", err), ) diff --git a/internal/collector/textfile/textfile_test_test.go b/internal/collector/textfile/textfile_test_test.go index 2cb33063..b8e0c941 100644 --- a/internal/collector/textfile/textfile_test_test.go +++ b/internal/collector/textfile/textfile_test_test.go @@ -19,7 +19,6 @@ package textfile_test import ( "fmt" - "io" "log/slog" "strings" "testing" @@ -36,7 +35,7 @@ var baseDir = "../../../tools/textfile-test" //nolint:paralleltest func TestMultipleDirectories(t *testing.T) { - logger := slog.New(slog.NewTextHandler(io.Discard, nil)) + logger := slog.New(slog.DiscardHandler) testDir := baseDir + "/multiple-dirs" testDirs := fmt.Sprintf("%[1]s/dir1,%[1]s/dir2,%[1]s/dir3", testDir) @@ -76,7 +75,7 @@ func TestMultipleDirectories(t *testing.T) { //nolint:paralleltest func TestDuplicateFileName(t *testing.T) { - logger := slog.New(slog.NewTextHandler(io.Discard, nil)) + logger := slog.New(slog.DiscardHandler) testDir := baseDir + "/duplicate-filename" textFileCollector := textfile.New(&textfile.Config{ TextFileDirectories: []string{testDir}, diff --git a/internal/headers/wtsapi32/wtsapi32.go b/internal/headers/wtsapi32/wtsapi32.go index 8300b434..dbb95302 100644 --- a/internal/headers/wtsapi32/wtsapi32.go +++ b/internal/headers/wtsapi32/wtsapi32.go @@ -189,7 +189,9 @@ func WTSEnumerateSessionsEx(server windows.Handle, logger *slog.Logger) ([]WTSSe if sessionInfoPointer != 0 { defer func(class WTSTypeClass, pMemory uintptr, NumberOfEntries uint32) { if err := WTSFreeMemoryEx(class, pMemory, NumberOfEntries); err != nil { - logger.Warn("failed to free memory", "err", fmt.Errorf("WTSEnumerateSessionsEx: %w", err)) + logger.Warn("failed to free memory", + slog.Any("err", fmt.Errorf("WTSEnumerateSessionsEx: %w", err)), + ) } }(WTSTypeSessionInfoLevel1, sessionInfoPointer, count) } diff --git a/internal/httphandler/httphandler.go b/internal/httphandler/httphandler.go index 53541acc..d0865deb 100644 --- a/internal/httphandler/httphandler.go +++ b/internal/httphandler/httphandler.go @@ -86,7 +86,7 @@ func (c *MetricsHTTPHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { handler, err := c.handlerFactory(logger, scrapeTimeout, r.URL.Query()["collect[]"]) if err != nil { - logger.Warn("Couldn't create filtered metrics handler", + logger.WarnContext(r.Context(), "Couldn't create filtered metrics handler", slog.Any("err", err), ) @@ -107,7 +107,7 @@ func (c *MetricsHTTPHandler) getScrapeTimeout(logger *slog.Logger, r *http.Reque timeoutSeconds, err = strconv.ParseFloat(v, 64) if err != nil { - logger.Warn(fmt.Sprintf("Couldn't parse X-Prometheus-Scrape-Timeout-Seconds: %q. Defaulting timeout to %f", v, defaultScrapeTimeout)) + logger.WarnContext(r.Context(), fmt.Sprintf("Couldn't parse X-Prometheus-Scrape-Timeout-Seconds: %q. Defaulting timeout to %f", v, defaultScrapeTimeout)) } } diff --git a/internal/mi/operation.go b/internal/mi/operation.go index 051a2cdf..6f958ac8 100644 --- a/internal/mi/operation.go +++ b/internal/mi/operation.go @@ -195,7 +195,7 @@ func (o *Operation) Unmarshal(dst any) error { } dv := reflect.ValueOf(dst) - if dv.Kind() != reflect.Ptr || dv.IsNil() { + if dv.Kind() != reflect.Pointer || dv.IsNil() { return ErrInvalidEntityType } diff --git a/internal/mi/session.go b/internal/mi/session.go index eedd480b..9588301d 100644 --- a/internal/mi/session.go +++ b/internal/mi/session.go @@ -202,7 +202,7 @@ func (s *Session) QueryUnmarshal(dst any, } dv := reflect.ValueOf(dst) - if dv.Kind() != reflect.Ptr || dv.IsNil() { + if dv.Kind() != reflect.Pointer || dv.IsNil() { return ErrInvalidEntityType } diff --git a/internal/pdh/collector.go b/internal/pdh/collector.go index 9321b6a9..e679028e 100644 --- a/internal/pdh/collector.go +++ b/internal/pdh/collector.go @@ -309,7 +309,7 @@ func (c *Collector) collectWorkerRaw() { } dv := reflect.ValueOf(data) - if dv.Kind() != reflect.Ptr || dv.IsNil() { + if dv.Kind() != reflect.Pointer || dv.IsNil() { return fmt.Errorf("expected a pointer, got %s: %w", dv.Kind(), mi.ErrInvalidEntityType) } @@ -476,7 +476,7 @@ func (c *Collector) collectWorkerFormatted() { } dv := reflect.ValueOf(data) - if dv.Kind() != reflect.Ptr || dv.IsNil() { + if dv.Kind() != reflect.Pointer || dv.IsNil() { return fmt.Errorf("expected a pointer, got %s: %w", dv.Kind(), mi.ErrInvalidEntityType) } diff --git a/internal/pdh/registry/collector.go b/internal/pdh/registry/collector.go index f4200f74..5b13c8fa 100644 --- a/internal/pdh/registry/collector.go +++ b/internal/pdh/registry/collector.go @@ -103,7 +103,7 @@ func (c *Collector) Describe() map[string]string { func (c *Collector) Collect(data any) error { dv := reflect.ValueOf(data) - if dv.Kind() != reflect.Ptr || dv.IsNil() { + if dv.Kind() != reflect.Pointer || dv.IsNil() { return mi.ErrInvalidEntityType } diff --git a/internal/utils/testutils/testutils.go b/internal/utils/testutils/testutils.go index 0643595e..be522fba 100644 --- a/internal/utils/testutils/testutils.go +++ b/internal/utils/testutils/testutils.go @@ -19,7 +19,6 @@ package testutils import ( "errors" - "io" "log/slog" "os" "sync" @@ -39,7 +38,7 @@ import ( func FuncBenchmarkCollector[C collector.Collector](b *testing.B, name string, collectFunc collector.BuilderWithFlags[C], fn ...func(app *kingpin.Application)) { b.Helper() - logger := slog.New(slog.NewTextHandler(io.Discard, nil)) + logger := slog.New(slog.DiscardHandler) app := kingpin.New("windows_exporter", "Windows metrics exporter.") c := collectFunc(app) @@ -74,7 +73,7 @@ func TestCollector[C collector.Collector, V any](t *testing.T, fn func(*V) C, co err error ) - logger := slog.New(slog.NewTextHandler(io.Discard, nil)) + logger := slog.New(slog.DiscardHandler) c := fn(conf) ch := make(chan prometheus.Metric, 10000) diff --git a/renovate.json b/renovate.json index e3c88d97..9f6b719f 100644 --- a/renovate.json +++ b/renovate.json @@ -42,13 +42,6 @@ "golangci/golangci-lint-action" ] }, - { - "enabled": true, - "matchManagers": ["gomod"], - "matchDepNames": ["go"], - "matchDepTypes": ["golang"], - "rangeStrategy": "bump" - }, { "groupName": "golangci-lint", "matchPackageNames": [