Skip to content

Commit b597c12

Browse files
authored
Merge pull request #1992 from prometheus/superq/release-1.1.2
Release version 1.1.2
2 parents 4e837d4 + 03d8426 commit b597c12

File tree

7 files changed

+24
-6
lines changed

7 files changed

+24
-6
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
* [ENHANCEMENT]
66
* [BUGFIX]
77

8+
## 1.1.2 / 2021-03-05
9+
10+
* [BUGFIX] Handle errors from disabled PSI subsystem #1983
11+
* [BUGFIX] Sanitize strings from /sys/class/power_supply #1984
12+
* [BUGFIX] Silence missing netclass errors #1986
13+
814
## 1.1.1 / 2021-02-12
915

1016
* [BUGFIX] Fix ineffassign issue #1957

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.1
1+
1.1.2

collector/fixtures/e2e-output.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2613,7 +2613,7 @@ node_power_supply_energy_watthour{power_supply="BAT0"} 36.58
26132613
# HELP node_power_supply_info info of /sys/class/power_supply/<power_supply>.
26142614
# TYPE node_power_supply_info gauge
26152615
node_power_supply_info{power_supply="AC",type="Mains"} 1
2616-
node_power_supply_info{capacity_level="Normal",manufacturer="LGC",model_name="LNV-45N1",power_supply="BAT0",serial_number="38109",status="Discharging",technology="Li-ion",type="Battery"} 1
2616+
node_power_supply_info{capacity_level="Normal",manufacturer="LGC",model_name="LNV-45N1",power_supply="BAT0",serial_number="38109",status="Discharging",technology="Li-ion",type="Battery"} 1
26172617
# HELP node_power_supply_online online value of /sys/class/power_supply/<power_supply>.
26182618
# TYPE node_power_supply_online gauge
26192619
node_power_supply_online{power_supply="AC"} 0

collector/fixtures/sys.ttar

+1-1
Original file line numberDiff line numberDiff line change
@@ -1298,7 +1298,7 @@ Mode: 444
12981298
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12991299
Path: sys/class/power_supply/BAT0/model_name
13001300
Lines: 1
1301-
LNV-45N1
1301+
LNV-45N1��
13021302
Mode: 444
13031303
# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13041304
Directory: sys/class/power_supply/BAT0/power

collector/netclass_linux.go

+8-2
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@
1717
package collector
1818

1919
import (
20+
"errors"
2021
"fmt"
22+
"os"
2123
"regexp"
2224

2325
"github.com/go-kit/kit/log"
26+
"github.com/go-kit/kit/log/level"
2427
"github.com/prometheus/client_golang/prometheus"
2528
"github.com/prometheus/procfs/sysfs"
2629
"gopkg.in/alecthomas/kingpin.v2"
@@ -61,6 +64,10 @@ func NewNetClassCollector(logger log.Logger) (Collector, error) {
6164
func (c *netClassCollector) Update(ch chan<- prometheus.Metric) error {
6265
netClass, err := c.getNetClassInfo()
6366
if err != nil {
67+
if errors.Is(err, os.ErrNotExist) || errors.Is(err, os.ErrPermission) {
68+
level.Debug(c.logger).Log("msg", "Could not read netclass file", "err", err)
69+
return ErrNoData
70+
}
6471
return fmt.Errorf("could not get net class info: %w", err)
6572
}
6673
for _, ifaceInfo := range netClass {
@@ -173,9 +180,8 @@ func pushMetric(ch chan<- prometheus.Metric, subsystem string, name string, valu
173180

174181
func (c *netClassCollector) getNetClassInfo() (sysfs.NetClass, error) {
175182
netClass, err := c.fs.NetClass()
176-
177183
if err != nil {
178-
return netClass, fmt.Errorf("error obtaining net class info: %w", err)
184+
return netClass, err
179185
}
180186

181187
for device := range netClass {

collector/powersupplyclass.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"fmt"
2222
"os"
2323
"regexp"
24+
"strings"
2425

2526
"github.com/go-kit/kit/log"
2627
"github.com/prometheus/client_golang/prometheus"
@@ -153,7 +154,7 @@ func (c *powerSupplyClassCollector) Update(ch chan<- prometheus.Metric) error {
153154
} {
154155
if value != "" {
155156
keys = append(keys, name)
156-
values = append(values, value)
157+
values = append(values, strings.ToValidUTF8(value, "�"))
157158
}
158159
}
159160

collector/pressure_linux.go

+5
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"errors"
2020
"fmt"
2121
"os"
22+
"syscall"
2223

2324
"github.com/go-kit/kit/log"
2425
"github.com/go-kit/kit/log/level"
@@ -94,6 +95,10 @@ func (c *pressureStatsCollector) Update(ch chan<- prometheus.Metric) error {
9495
level.Debug(c.logger).Log("msg", "pressure information is unavailable, you need a Linux kernel >= 4.20 and/or CONFIG_PSI enabled for your kernel")
9596
return ErrNoData
9697
}
98+
if errors.Is(err, syscall.ENOTSUP) {
99+
level.Debug(c.logger).Log("msg", "pressure information is disabled, add psi=1 kernel command line to enable it")
100+
return ErrNoData
101+
}
97102
return fmt.Errorf("failed to retrieve pressure stats: %w", err)
98103
}
99104
switch res {

0 commit comments

Comments
 (0)