Skip to content

Commit ef34e94

Browse files
Merge pull request #223 from sysdiglabs/SMPROD-20718
SMPROD-20718 Fix golangci-lint workflow and reported linter errors
2 parents dece71c + b784fdb commit ef34e94

25 files changed

Lines changed: 64 additions & 64 deletions

.github/workflows/golangci-lint.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
22
# This action is synced from https://github.com/prometheus/prometheus
3-
version: 1
43
name: golangci-lint
54
on:
65
push:
@@ -26,11 +25,12 @@ jobs:
2625
- name: install Go
2726
uses: actions/setup-go@v5
2827
with:
29-
go-version: 1.25.x
28+
go-version: 1.26.x
3029
- name: Install snmp_exporter/generator dependencies
3130
run: sudo apt-get update && sudo apt-get -y install libsnmp-dev
3231
if: github.repository == 'prometheus/snmp_exporter'
3332
- name: Lint
3433
uses: golangci/golangci-lint-action@v8
3534
with:
36-
version: v2.4.0
35+
version: v2.12.2
36+
install-mode: goinstall

.golangci.yml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
---
2+
version: "2"
3+
24
linters:
35
enable:
4-
- misspell
5-
- revive
6-
7-
issues:
8-
exclude-rules:
9-
- path: _test.go
10-
linters:
11-
- errcheck
12-
13-
linters-settings:
14-
errcheck:
15-
exclude-functions:
16-
# Never check for logger errors.
17-
- (github.com/go-kit/log.Logger).Log
18-
revive:
6+
- misspell
7+
- revive
8+
settings:
9+
errcheck:
10+
exclude-functions:
11+
# Never check for logger errors.
12+
- (github.com/go-kit/log.Logger).Log
13+
revive:
14+
rules:
15+
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter
16+
- name: unused-parameter
17+
severity: warning
18+
disabled: true
19+
exclusions:
1920
rules:
20-
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter
21-
- name: unused-parameter
22-
severity: warning
23-
disabled: true
21+
- path: _test.go
22+
linters:
23+
- errcheck

cmd/postgres_exporter/namespace.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ func queryNamespaceMapping(server *Server, namespace string, mapping MetricMapNa
4545
if !found {
4646
// I've no idea how to avoid this properly at the moment, but this is
4747
// an admin tool so you're not injecting SQL right?
48-
rows, err = server.db.Query(fmt.Sprintf("SELECT * FROM %s;", namespace)) // nolint: gas
48+
rows, err = server.db.Query(fmt.Sprintf("SELECT * FROM %s;", namespace)) // nolint: gosec
4949
} else {
5050
rows, err = server.db.Query(query)
5151
}
5252
if err != nil {
53-
return []prometheus.Metric{}, []error{}, fmt.Errorf("Error running query on database %q: %s %v", server, namespace, err)
53+
return []prometheus.Metric{}, []error{}, fmt.Errorf("error running query on database %q: %s %v", server, namespace, err)
5454
}
5555
defer rows.Close() // nolint: errcheck
5656

cmd/postgres_exporter/pg_setting.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ func querySettings(ch chan<- prometheus.Metric, server *Server) error {
4242

4343
rows, err := server.db.Query(query)
4444
if err != nil {
45-
return fmt.Errorf("Error running query on database %q: %s %v", server, namespace, err)
45+
return fmt.Errorf("error running query on database %q: %s %v", server, namespace, err)
4646
}
4747
defer rows.Close() // nolint: errcheck
4848

4949
for rows.Next() {
5050
s := &pgSetting{}
5151
err = rows.Scan(&s.name, &s.setting, &s.unit, &s.shortDesc, &s.vartype)
5252
if err != nil {
53-
return fmt.Errorf("Error retrieving rows on %q: %s %v", server, namespace, err)
53+
return fmt.Errorf("error retrieving rows on %q: %s %v", server, namespace, err)
5454
}
5555

5656
ch <- s.metric(server.labels)
@@ -68,7 +68,7 @@ type pgSetting struct {
6868
func (s *pgSetting) metric(labels prometheus.Labels) prometheus.Metric {
6969
var (
7070
err error
71-
name = strings.Replace(s.name, ".", "_", -1)
71+
name = strings.ReplaceAll(s.name, ".", "_")
7272
unit = s.unit // nolint: ineffassign
7373
shortDesc = fmt.Sprintf("Server Parameter: %s", s.name)
7474
subsystem = "settings"
@@ -120,7 +120,7 @@ func (s *pgSetting) normaliseUnit() (val float64, unit string, err error) {
120120

121121
val, err = strconv.ParseFloat(s.setting, 64)
122122
if err != nil {
123-
return val, unit, fmt.Errorf("Error converting setting %q value %q to float: %s", s.name, s.setting, err)
123+
return val, unit, fmt.Errorf("error converting setting %q value %q to float: %s", s.name, s.setting, err)
124124
}
125125

126126
// Units defined in: https://www.postgresql.org/docs/current/static/config-setting.html
@@ -132,7 +132,7 @@ func (s *pgSetting) normaliseUnit() (val float64, unit string, err error) {
132132
case "B", "kB", "MB", "GB", "TB", "1kB", "2kB", "4kB", "8kB", "16kB", "32kB", "64kB", "16MB", "32MB", "64MB":
133133
unit = "bytes"
134134
default:
135-
err = fmt.Errorf("Unknown unit for runtime variable: %q", s.unit)
135+
err = fmt.Errorf("unknown unit for runtime variable: %q", s.unit)
136136
return
137137
}
138138

cmd/postgres_exporter/postgres_exporter.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -587,11 +587,11 @@ func checkPostgresVersion(db *sql.DB, server string) (semver.Version, string, er
587587
var versionString string
588588
err := versionRow.Scan(&versionString)
589589
if err != nil {
590-
return semver.Version{}, "", fmt.Errorf("Error scanning version string on %q: %v", server, err)
590+
return semver.Version{}, "", fmt.Errorf("error scanning version string on %q: %v", server, err)
591591
}
592592
semanticVersion, err := parseVersion(versionString)
593593
if err != nil {
594-
return semver.Version{}, "", fmt.Errorf("Error parsing version string on %q: %v", server, err)
594+
return semver.Version{}, "", fmt.Errorf("error parsing version string on %q: %v", server, err)
595595
}
596596

597597
return semanticVersion, versionString, nil
@@ -601,7 +601,7 @@ func checkPostgresVersion(db *sql.DB, server string) (semver.Version, string, er
601601
func (e *Exporter) checkMapVersions(ch chan<- prometheus.Metric, server *Server) error {
602602
semanticVersion, versionString, err := checkPostgresVersion(server.db, server.String())
603603
if err != nil {
604-
return fmt.Errorf("Error fetching version string on %q: %v", server, err)
604+
return fmt.Errorf("error fetching version string on %q: %v", server, err)
605605
}
606606

607607
if !e.disableDefaultMetrics && semanticVersion.LT(lowestSupportedVersion) {

cmd/postgres_exporter/probe.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func handleProbe(logger log.Logger, excludeDatabases []string) http.HandlerFunc
9191
}
9292

9393
// Cleanup underlying connections to prevent connection leaks
94-
defer pc.Close()
94+
defer func() { _ = pc.Close() }()
9595

9696
// TODO(@sysadmind): Remove the registry.MustRegister() call below and instead handle the collection here. That will allow
9797
// for the passing of context, handling of timeouts, and more control over the collection.

cmd/postgres_exporter/queries.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ func addQueries(content []byte, pgVersion semver.Version, server *Server) error
266266
func queryDatabases(server *Server) ([]string, error) {
267267
rows, err := server.db.Query("SELECT datname FROM pg_database WHERE datallowconn = true AND datistemplate = false AND datname != current_database()")
268268
if err != nil {
269-
return nil, fmt.Errorf("Error retrieving databases: %v", err)
269+
return nil, fmt.Errorf("error retrieving databases: %v", err)
270270
}
271271
defer rows.Close() // nolint: errcheck
272272

collector/collector.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ func (p PostgresCollector) Collect(ch chan<- prometheus.Metric) {
176176
level.Error(p.logger).Log("msg", "Error opening connection to database", "err", err)
177177
return
178178
}
179-
defer inst.Close()
179+
defer func() { _ = inst.Close() }()
180180

181181
wg := sync.WaitGroup{}
182182
wg.Add(len(p.Collectors))

collector/collector_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ func readMetric(m prometheus.Metric) MetricResult {
4848

4949
func sanitizeQuery(q string) string {
5050
q = strings.Join(strings.Fields(q), " ")
51-
q = strings.Replace(q, "(", "\\(", -1)
52-
q = strings.Replace(q, "?", "\\?", -1)
53-
q = strings.Replace(q, ")", "\\)", -1)
54-
q = strings.Replace(q, "[", "\\[", -1)
55-
q = strings.Replace(q, "]", "\\]", -1)
56-
q = strings.Replace(q, "{", "\\{", -1)
57-
q = strings.Replace(q, "}", "\\}", -1)
58-
q = strings.Replace(q, "*", "\\*", -1)
59-
q = strings.Replace(q, "^", "\\^", -1)
60-
q = strings.Replace(q, "$", "\\$", -1)
51+
q = strings.ReplaceAll(q, "(", "\\(")
52+
q = strings.ReplaceAll(q, "?", "\\?")
53+
q = strings.ReplaceAll(q, ")", "\\)")
54+
q = strings.ReplaceAll(q, "[", "\\[")
55+
q = strings.ReplaceAll(q, "]", "\\]")
56+
q = strings.ReplaceAll(q, "{", "\\{")
57+
q = strings.ReplaceAll(q, "}", "\\}")
58+
q = strings.ReplaceAll(q, "*", "\\*")
59+
q = strings.ReplaceAll(q, "^", "\\^")
60+
q = strings.ReplaceAll(q, "$", "\\$")
6161
return q
6262
}

collector/instance.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func newInstance(dsn string) (*instance, error) {
3838
if err != nil {
3939
return nil, err
4040
}
41-
db.Close()
41+
_ = db.Close()
4242

4343
return i, nil
4444
}

0 commit comments

Comments
 (0)