diff --git a/.golangci.yml b/.golangci.yml index 0df1b35a..26d1f5ad 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -14,6 +14,7 @@ linters: - pkg: os/exec desc: Using os/exec to run sub processes it not allowed by policy errcheck: + # Used in HTTP handlers, any error is handled by the server itself. exclude-functions: - (net/http.ResponseWriter).Write revive: diff --git a/collector/btrfs_linux.go b/collector/btrfs_linux.go index 2dbdf5aa..acb7e64c 100644 --- a/collector/btrfs_linux.go +++ b/collector/btrfs_linux.go @@ -69,7 +69,7 @@ func (c *btrfsCollector) Update(ch chan<- prometheus.Metric) error { for _, s := range stats { // match up procfs and ioctl info by filesystem UUID (without dashes) - var fsUUID = strings.Replace(s.UUID, "-", "", -1) + var fsUUID = strings.ReplaceAll(s.UUID, "-", "") ioctlStats := ioctlStatsMap[fsUUID] c.updateBtrfsStats(ch, s, ioctlStats) } diff --git a/collector/cpu_linux.go b/collector/cpu_linux.go index 8ca70365..46ab0bf5 100644 --- a/collector/cpu_linux.go +++ b/collector/cpu_linux.go @@ -87,9 +87,9 @@ func NewCPUCollector(logger *slog.Logger) (Collector, error) { isolcpus, err := sfs.IsolatedCPUs() if err != nil { if !os.IsNotExist(err) { - return nil, fmt.Errorf("Unable to get isolated cpus: %w", err) + return nil, fmt.Errorf("couldn't get isolated cpus: %w", err) } - logger.Debug("Could not open isolated file", "error", err) + logger.Debug("couldn't open isolated file", "error", err) } c := &cpuCollector{ diff --git a/collector/ethtool_linux_test.go b/collector/ethtool_linux_test.go index 98e66dbc..e7618ac5 100644 --- a/collector/ethtool_linux_test.go +++ b/collector/ethtool_linux_test.go @@ -212,16 +212,18 @@ func (e *EthtoolFixture) LinkInfo(intf string) (ethtool.EthtoolCmd, error) { items := strings.Split(line, ": ") if items[0] == "Supported pause frame use" { - if items[1] == "Symmetric" { + switch items[1] { + case "Symmetric": res.Supported |= (1 << unix.ETHTOOL_LINK_MODE_Pause_BIT) - } else if items[1] == "Receive-only" { + case "Receive-only": res.Supported |= (1 << unix.ETHTOOL_LINK_MODE_Asym_Pause_BIT) } } if items[0] == "Advertised pause frame use" { - if items[1] == "Symmetric" { + switch items[1] { + case "Symmetric": res.Advertising |= (1 << unix.ETHTOOL_LINK_MODE_Pause_BIT) - } else if items[1] == "Receive-only" { + case "Receive-only": res.Advertising |= (1 << unix.ETHTOOL_LINK_MODE_Asym_Pause_BIT) } } diff --git a/collector/filesystem_linux.go b/collector/filesystem_linux.go index 3a7bda4d..127a3be1 100644 --- a/collector/filesystem_linux.go +++ b/collector/filesystem_linux.go @@ -215,8 +215,8 @@ func parseFilesystemLabels(r io.Reader) ([]filesystemLabels, error) { // Ensure we handle the translation of \040 and \011 // as per fstab(5). - parts[4] = strings.Replace(parts[4], "\\040", " ", -1) - parts[4] = strings.Replace(parts[4], "\\011", "\t", -1) + parts[4] = strings.ReplaceAll(parts[4], "\\040", " ") + parts[4] = strings.ReplaceAll(parts[4], "\\011", "\t") filesystems = append(filesystems, filesystemLabels{ device: parts[m+3], diff --git a/collector/meminfo_linux.go b/collector/meminfo_linux.go index 98d5a5c0..62807c2f 100644 --- a/collector/meminfo_linux.go +++ b/collector/meminfo_linux.go @@ -44,7 +44,7 @@ func NewMeminfoCollector(logger *slog.Logger) (Collector, error) { func (c *meminfoCollector) getMemInfo() (map[string]float64, error) { meminfo, err := c.fs.Meminfo() if err != nil { - return nil, fmt.Errorf("Failed to get memory info: %s", err) + return nil, fmt.Errorf("failed to get memory info: %s", err) } metrics := make(map[string]float64) diff --git a/collector/perf_linux_test.go b/collector/perf_linux_test.go index e3858511..1d39e8a9 100644 --- a/collector/perf_linux_test.go +++ b/collector/perf_linux_test.go @@ -33,10 +33,10 @@ func canTestPerf(t *testing.T) { if err != nil { t.Skip("Procfs not mounted, skipping perf tests") } - paranoidStr := strings.Replace(string(paranoidBytes), "\n", "", -1) + paranoidStr := strings.ReplaceAll(string(paranoidBytes), "\n", "") paranoid, err := strconv.Atoi(paranoidStr) if err != nil { - t.Fatalf("Expected perf_event_paranoid to be an int, got: %s", paranoidStr) + t.Fatalf("expected perf_event_paranoid to be an int, got: %s", paranoidStr) } if paranoid >= 1 { t.Skip("Skipping perf tests, set perf_event_paranoid to 0") diff --git a/collector/systemd_linux_test.go b/collector/systemd_linux_test.go index 1c290377..f12b6ef8 100644 --- a/collector/systemd_linux_test.go +++ b/collector/systemd_linux_test.go @@ -122,11 +122,12 @@ func TestSystemdSummary(t *testing.T) { summary := summarizeUnits(fixtures[0]) for _, state := range unitStatesName { - if state == "inactive" { + switch state { + case "inactive": testSummaryHelper(t, state, summary[state], 3.0) - } else if state == "active" { + case "active": testSummaryHelper(t, state, summary[state], 1.0) - } else { + default: testSummaryHelper(t, state, summary[state], 0.0) } } diff --git a/collector/zfs_linux.go b/collector/zfs_linux.go index 4baf2b35..ff544a79 100644 --- a/collector/zfs_linux.go +++ b/collector/zfs_linux.go @@ -435,5 +435,5 @@ type zfsSysctl string func (s zfsSysctl) metricName() string { parts := strings.Split(string(s), ".") - return strings.Replace(parts[len(parts)-1], "-", "_", -1) + return strings.ReplaceAll(parts[len(parts)-1], "-", "_") }