mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-12-26 22:19:44 -08:00
feat: added suspended as a node_zfs_zpool_state (#2449)
Signed-off-by: Pablo Caderno <kaderno@gmail.com>
This commit is contained in:
parent
b87c6a8826
commit
d31af1d1e5
|
@ -4165,16 +4165,25 @@ node_zfs_zpool_rupdate{zpool="poolz1"} 1.10734831944501e+14
|
||||||
# HELP node_zfs_zpool_state kstat.zfs.misc.state
|
# HELP node_zfs_zpool_state kstat.zfs.misc.state
|
||||||
# TYPE node_zfs_zpool_state gauge
|
# TYPE node_zfs_zpool_state gauge
|
||||||
node_zfs_zpool_state{state="degraded",zpool="pool1"} 0
|
node_zfs_zpool_state{state="degraded",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="degraded",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="degraded",zpool="poolz1"} 1
|
node_zfs_zpool_state{state="degraded",zpool="poolz1"} 1
|
||||||
node_zfs_zpool_state{state="faulted",zpool="pool1"} 0
|
node_zfs_zpool_state{state="faulted",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="faulted",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="faulted",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="faulted",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="offline",zpool="pool1"} 0
|
node_zfs_zpool_state{state="offline",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="offline",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="offline",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="offline",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="online",zpool="pool1"} 1
|
node_zfs_zpool_state{state="online",zpool="pool1"} 1
|
||||||
|
node_zfs_zpool_state{state="online",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="online",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="online",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="removed",zpool="pool1"} 0
|
node_zfs_zpool_state{state="removed",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="removed",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="removed",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="removed",zpool="poolz1"} 0
|
||||||
|
node_zfs_zpool_state{state="suspended",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="suspended",zpool="pool2"} 1
|
||||||
|
node_zfs_zpool_state{state="suspended",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="unavail",zpool="pool1"} 0
|
node_zfs_zpool_state{state="unavail",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="unavail",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="unavail",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="unavail",zpool="poolz1"} 0
|
||||||
# HELP node_zfs_zpool_wcnt kstat.zfs.misc.io.wcnt
|
# HELP node_zfs_zpool_wcnt kstat.zfs.misc.io.wcnt
|
||||||
# TYPE node_zfs_zpool_wcnt untyped
|
# TYPE node_zfs_zpool_wcnt untyped
|
||||||
|
|
|
@ -4187,16 +4187,25 @@ node_zfs_zpool_rupdate{zpool="poolz1"} 1.10734831944501e+14
|
||||||
# HELP node_zfs_zpool_state kstat.zfs.misc.state
|
# HELP node_zfs_zpool_state kstat.zfs.misc.state
|
||||||
# TYPE node_zfs_zpool_state gauge
|
# TYPE node_zfs_zpool_state gauge
|
||||||
node_zfs_zpool_state{state="degraded",zpool="pool1"} 0
|
node_zfs_zpool_state{state="degraded",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="degraded",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="degraded",zpool="poolz1"} 1
|
node_zfs_zpool_state{state="degraded",zpool="poolz1"} 1
|
||||||
node_zfs_zpool_state{state="faulted",zpool="pool1"} 0
|
node_zfs_zpool_state{state="faulted",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="faulted",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="faulted",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="faulted",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="offline",zpool="pool1"} 0
|
node_zfs_zpool_state{state="offline",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="offline",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="offline",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="offline",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="online",zpool="pool1"} 1
|
node_zfs_zpool_state{state="online",zpool="pool1"} 1
|
||||||
|
node_zfs_zpool_state{state="online",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="online",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="online",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="removed",zpool="pool1"} 0
|
node_zfs_zpool_state{state="removed",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="removed",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="removed",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="removed",zpool="poolz1"} 0
|
||||||
|
node_zfs_zpool_state{state="suspended",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="suspended",zpool="pool2"} 1
|
||||||
|
node_zfs_zpool_state{state="suspended",zpool="poolz1"} 0
|
||||||
node_zfs_zpool_state{state="unavail",zpool="pool1"} 0
|
node_zfs_zpool_state{state="unavail",zpool="pool1"} 0
|
||||||
|
node_zfs_zpool_state{state="unavail",zpool="pool2"} 0
|
||||||
node_zfs_zpool_state{state="unavail",zpool="poolz1"} 0
|
node_zfs_zpool_state{state="unavail",zpool="poolz1"} 0
|
||||||
# HELP node_zfs_zpool_wcnt kstat.zfs.misc.io.wcnt
|
# HELP node_zfs_zpool_wcnt kstat.zfs.misc.io.wcnt
|
||||||
# TYPE node_zfs_zpool_wcnt untyped
|
# TYPE node_zfs_zpool_wcnt untyped
|
||||||
|
|
1
collector/fixtures/proc/spl/kstat/zfs/pool2/state
Normal file
1
collector/fixtures/proc/spl/kstat/zfs/pool2/state
Normal file
|
@ -0,0 +1 @@
|
||||||
|
SUSPENDED
|
|
@ -42,7 +42,7 @@ const (
|
||||||
// kstatDataString = "7"
|
// kstatDataString = "7"
|
||||||
)
|
)
|
||||||
|
|
||||||
var zfsPoolStatesName = []string{"online", "degraded", "faulted", "offline", "removed", "unavail"}
|
var zfsPoolStatesName = []string{"online", "degraded", "faulted", "offline", "removed", "unavail", "suspended"}
|
||||||
|
|
||||||
func (c *zfsCollector) openProcFile(path string) (*os.File, error) {
|
func (c *zfsCollector) openProcFile(path string) (*os.File, error) {
|
||||||
file, err := os.Open(procFilePath(path))
|
file, err := os.Open(procFilePath(path))
|
||||||
|
|
|
@ -535,6 +535,15 @@ func TestPoolStateParsing(t *testing.T) {
|
||||||
t.Fatalf("Incorrect parsed value for degraded state")
|
t.Fatalf("Incorrect parsed value for degraded state")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if poolName == "pool2" {
|
||||||
|
if isActive != uint64(1) && stateName == "suspended" {
|
||||||
|
t.Fatalf("Incorrect parsed value for suspended state")
|
||||||
|
}
|
||||||
|
if isActive != uint64(0) && stateName != "suspended" {
|
||||||
|
t.Fatalf("Incorrect parsed value for suspended state")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
file.Close()
|
file.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue