Modernize codebase (#3431)

Run Go modernize tool and apply fixes.

Signed-off-by: Ben Kochie <superq@gmail.com>
pull/3441/head
Ben Kochie 2 months ago committed by GitHub
parent f3b02df012
commit 61c461ce0a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      collector/bonding_linux.go
  2. 2
      collector/collector.go
  3. 4
      collector/cpufreq_linux.go
  4. 4
      collector/ethtool_linux_test.go
  5. 5
      collector/filesystem_linux.go
  6. 8
      collector/hwmon_linux.go
  7. 19
      collector/logind_linux.go
  8. 9
      collector/netstat_linux.go
  9. 2
      collector/perf_linux.go
  10. 8
      collector/sysctl_linux.go
  11. 10
      collector/textfile.go
  12. 2
      collector/wifi_linux.go
  13. 4
      collector/zfs_linux.go
  14. 22
      collector/zfs_linux_test.go
  15. 4
      node_exporter_test.go

@ -78,13 +78,13 @@ func readBondingStats(root string) (status map[string][2]int, err error) {
if err != nil {
return nil, err
}
for _, master := range strings.Fields(string(masters)) {
for master := range strings.FieldsSeq(string(masters)) {
slaves, err := os.ReadFile(filepath.Join(root, master, "bonding", "slaves"))
if err != nil {
return nil, err
}
sstat := [2]int{0, 0}
for _, slave := range strings.Fields(string(slaves)) {
for slave := range strings.FieldsSeq(string(slaves)) {
state, err := os.ReadFile(filepath.Join(root, master, fmt.Sprintf("lower_%s", slave), "bonding_slave", "mii_status"))
if errors.Is(err, os.ErrNotExist) {
// some older? kernels use slave_ prefix

@ -199,7 +199,7 @@ func IsNoDataError(err error) bool {
}
// pushMetric helps construct and convert a variety of value types into Prometheus float64 metrics.
func pushMetric(ch chan<- prometheus.Metric, fieldDesc *prometheus.Desc, name string, value interface{}, valueType prometheus.ValueType, labelValues ...string) {
func pushMetric(ch chan<- prometheus.Metric, fieldDesc *prometheus.Desc, name string, value any, valueType prometheus.ValueType, labelValues ...string) {
var fVal float64
switch val := value.(type) {
case uint8:

@ -106,8 +106,8 @@ func (c *cpuFreqCollector) Update(ch chan<- prometheus.Metric) error {
)
}
if stats.Governor != "" {
availableGovernors := strings.Split(stats.AvailableGovernors, " ")
for _, g := range availableGovernors {
availableGovernors := strings.SplitSeq(stats.AvailableGovernors, " ")
for g := range availableGovernors {
state := 0
if g == stats.Governor {
state = 1

@ -139,7 +139,7 @@ func (e *EthtoolFixture) Stats(intf string) (map[string]uint64, error) {
func readModes(modes string) uint32 {
var out uint32
for _, mode := range strings.Split(modes, " ") {
for mode := range strings.SplitSeq(modes, " ") {
switch mode {
case "10baseT/Half":
out |= (1 << unix.ETHTOOL_LINK_MODE_10baseT_Half_BIT)
@ -162,7 +162,7 @@ func readModes(modes string) uint32 {
func readPortTypes(portTypes string) uint32 {
var out uint32
for _, ptype := range strings.Split(portTypes, " ") {
for ptype := range strings.SplitSeq(portTypes, " ") {
ptype = strings.Trim(ptype, " \t")
if ptype == "TP" {
out |= (1 << unix.ETHTOOL_LINK_MODE_TP_BIT)

@ -58,10 +58,7 @@ func (c *filesystemCollector) GetStats() ([]filesystemStats, error) {
statChan := make(chan filesystemStats)
wg := sync.WaitGroup{}
workerCount := *statWorkerCount
if workerCount < 1 {
workerCount = 1
}
workerCount := max(*statWorkerCount, 1)
for i := 0; i < workerCount; i++ {
wg.Add(1)

@ -23,6 +23,7 @@ import (
"os"
"path/filepath"
"regexp"
"slices"
"strconv"
"strings"
@ -154,11 +155,8 @@ func collectSensorData(dir string, data map[string]map[string]string) error {
continue
}
for _, t := range hwmonSensorTypes {
if t == sensorType {
addValueFile(data, sensorType+strconv.Itoa(sensorNum), sensorProperty, filepath.Join(dir, file.Name()))
break
}
if slices.Contains(hwmonSensorTypes, sensorType) {
addValueFile(data, sensorType+strconv.Itoa(sensorNum), sensorProperty, filepath.Join(dir, file.Name()))
}
}
return nil

@ -20,6 +20,7 @@ import (
"fmt"
"log/slog"
"os"
"slices"
"strconv"
"github.com/godbus/dbus/v5"
@ -138,10 +139,8 @@ func collectMetrics(ch chan<- prometheus.Metric, c logindInterface) error {
}
func knownStringOrOther(value string, known []string) string {
for i := range known {
if value == known[i] {
return value
}
if slices.Contains(known, value) {
return value
}
return "other"
@ -176,19 +175,19 @@ func newDbus() (*logindDbus, error) {
}
func (c *logindDbus) listSeats() ([]string, error) {
var result [][]interface{}
var result [][]any
err := c.object.Call(dbusObject+".Manager.ListSeats", 0).Store(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
resultInterface := make([]any, len(result))
for i := range result {
resultInterface[i] = result[i]
}
seats := make([]logindSeatEntry, len(result))
seatsInterface := make([]interface{}, len(seats))
seatsInterface := make([]any, len(seats))
for i := range seats {
seatsInterface[i] = &seats[i]
}
@ -209,19 +208,19 @@ func (c *logindDbus) listSeats() ([]string, error) {
}
func (c *logindDbus) listSessions() ([]logindSessionEntry, error) {
var result [][]interface{}
var result [][]any
err := c.object.Call(dbusObject+".Manager.ListSessions", 0).Store(&result)
if err != nil {
return nil, err
}
resultInterface := make([]interface{}, len(result))
resultInterface := make([]any, len(result))
for i := range result {
resultInterface[i] = result[i]
}
sessions := make([]logindSessionEntry, len(result))
sessionsInterface := make([]interface{}, len(sessions))
sessionsInterface := make([]any, len(sessions))
for i := range sessions {
sessionsInterface[i] = &sessions[i]
}

@ -22,6 +22,7 @@ import (
"fmt"
"io"
"log/slog"
"maps"
"os"
"regexp"
"strconv"
@ -73,12 +74,8 @@ func (c *netStatCollector) Update(ch chan<- prometheus.Metric) error {
}
// Merge the results of snmpStats into netStats (collisions are possible, but
// we know that the keys are always unique for the given use case).
for k, v := range snmpStats {
netStats[k] = v
}
for k, v := range snmp6Stats {
netStats[k] = v
}
maps.Copy(netStats, snmpStats)
maps.Copy(netStats, snmp6Stats)
for protocol, protocolStats := range netStats {
for name, value := range protocolStats {
key := protocol + "_" + name

@ -118,7 +118,7 @@ func perfTracepointFlagToTracepoints(tracepointsFlag []string) ([]*perfTracepoin
func perfCPUFlagToCPUs(cpuFlag string) ([]int, error) {
var err error
cpus := []int{}
for _, subset := range strings.Split(cpuFlag, ",") {
for subset := range strings.SplitSeq(cpuFlag, ",") {
// First parse a single CPU.
if !strings.Contains(subset, "-") {
cpu, err := strconv.Atoi(subset)

@ -86,7 +86,7 @@ func (c *sysctlCollector) Update(ch chan<- prometheus.Metric) error {
func (c *sysctlCollector) newMetrics(s *sysctl) ([]prometheus.Metric, error) {
var (
values interface{}
values any
length int
err error
)
@ -151,7 +151,7 @@ func (s *sysctl) metricName() string {
return SanitizeMetricName(s.name)
}
func (s *sysctl) newConstMetric(v interface{}) prometheus.Metric {
func (s *sysctl) newConstMetric(v any) prometheus.Metric {
if s.numeric {
return prometheus.MustNewConstMetric(
prometheus.NewDesc(
@ -171,7 +171,7 @@ func (s *sysctl) newConstMetric(v interface{}) prometheus.Metric {
)
}
func (s *sysctl) newIndexedMetrics(v interface{}) []prometheus.Metric {
func (s *sysctl) newIndexedMetrics(v any) []prometheus.Metric {
desc := prometheus.NewDesc(
prometheus.BuildFQName(namespace, "sysctl", s.metricName()),
fmt.Sprintf("sysctl %s", s.name),
@ -195,7 +195,7 @@ func (s *sysctl) newIndexedMetrics(v interface{}) []prometheus.Metric {
}
}
func (s *sysctl) newMappedMetrics(v interface{}) ([]prometheus.Metric, error) {
func (s *sysctl) newMappedMetrics(v any) ([]prometheus.Metric, error) {
switch values := v.(type) {
case []int:
metrics := make([]prometheus.Metric, len(values))

@ -21,6 +21,7 @@ import (
"log/slog"
"os"
"path/filepath"
"slices"
"sort"
"strings"
"time"
@ -91,14 +92,7 @@ func convertMetricFamily(metricFamily *dto.MetricFamily, ch chan<- prometheus.Me
}
for k := range allLabelNames {
present := false
for _, name := range names {
if k == name {
present = true
break
}
}
if !present {
if !slices.Contains(names, k) {
names = append(names, k)
values = append(values, "")
}

@ -363,7 +363,7 @@ type mockWifiStater struct {
fixtures string
}
func (s *mockWifiStater) unmarshalJSONFile(filename string, v interface{}) error {
func (s *mockWifiStater) unmarshalJSONFile(filename string, v any) error {
b, err := os.ReadFile(filepath.Join(s.fixtures, filename))
if err != nil {
return err

@ -124,7 +124,7 @@ func (c *zfsCollector) updateZfsStats(subsystem string, ch chan<- prometheus.Met
}
defer file.Close()
return c.parseProcfsFile(file, c.linuxPathMap[subsystem], func(s zfsSysctl, v interface{}) {
return c.parseProcfsFile(file, c.linuxPathMap[subsystem], func(s zfsSysctl, v any) {
var valueAsFloat64 float64
switch value := v.(type) {
case int64:
@ -212,7 +212,7 @@ func (c *zfsCollector) updatePoolStats(ch chan<- prometheus.Metric) error {
return nil
}
func (c *zfsCollector) parseProcfsFile(reader io.Reader, fmtExt string, handler func(zfsSysctl, interface{})) error {
func (c *zfsCollector) parseProcfsFile(reader io.Reader, fmtExt string, handler func(zfsSysctl, any)) error {
scanner := bufio.NewScanner(reader)
parseLine := false

@ -35,7 +35,7 @@ func TestArcstatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(arcstatsFile, "arcstats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(arcstatsFile, "arcstats", func(s zfsSysctl, v any) {
if s == zfsSysctl("kstat.zfs.misc.arcstats.hits") {
if v.(uint64) != 8772612 {
@ -72,7 +72,7 @@ func TestZfetchstatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(zfetchstatsFile, "zfetchstats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(zfetchstatsFile, "zfetchstats", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.zfetchstats.hits") {
return
@ -108,7 +108,7 @@ func TestZilParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(zilFile, "zil", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(zilFile, "zil", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.zil.zil_commit_count") {
return
@ -144,7 +144,7 @@ func TestVdevCacheStatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(vdevCacheStatsFile, "vdev_cache_stats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(vdevCacheStatsFile, "vdev_cache_stats", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.vdev_cache_stats.delegations") {
return
@ -180,7 +180,7 @@ func TestXuioStatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(xuioStatsFile, "xuio_stats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(xuioStatsFile, "xuio_stats", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.xuio_stats.onloan_read_buf") {
return
@ -216,7 +216,7 @@ func TestFmParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(fmFile, "fm", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(fmFile, "fm", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.fm.erpt-dropped") {
return
@ -252,7 +252,7 @@ func TestDmuTxParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(dmuTxFile, "dmu_tx", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(dmuTxFile, "dmu_tx", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.dmu_tx.dmu_tx_assigned") {
return
@ -417,7 +417,7 @@ func TestAbdstatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(abdstatsFile, "abdstats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(abdstatsFile, "abdstats", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.abdstats.linear_data_size") {
return
@ -453,7 +453,7 @@ func TestDbufstatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(dbufstatsFile, "dbufstats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(dbufstatsFile, "dbufstats", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.dbufstats.hash_hits") {
return
@ -489,7 +489,7 @@ func TestDnodestatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(dnodestatsFile, "dnodestats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(dnodestatsFile, "dnodestats", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.dnodestats.dnode_hold_alloc_hits") {
return
@ -525,7 +525,7 @@ func TestVdevMirrorstatsParsing(t *testing.T) {
}
handlerCalled := false
err = c.parseProcfsFile(vdevMirrorStatsFile, "vdev_mirror_stats", func(s zfsSysctl, v interface{}) {
err = c.parseProcfsFile(vdevMirrorStatsFile, "vdev_mirror_stats", func(s zfsSysctl, v any) {
if s != zfsSysctl("kstat.zfs.misc.vdev_mirror_stats.preferred_not_found") {
return

@ -59,7 +59,7 @@ func TestFileDescriptorLeak(t *testing.T) {
if err != nil {
return err
}
for i := 0; i < 5; i++ {
for range 5 {
if err := queryExporter(address); err != nil {
return err
}
@ -131,7 +131,7 @@ func runCommandAndTests(cmd *exec.Cmd, address string, fn func(pid int) error) e
return fmt.Errorf("failed to start command: %s", err)
}
time.Sleep(50 * time.Millisecond)
for i := 0; i < 10; i++ {
for i := range 10 {
if err := queryExporter(address); err == nil {
break
}

Loading…
Cancel
Save