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
|
||||
# TYPE node_zfs_zpool_state gauge
|
||||
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="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="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="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="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="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="pool2"} 0
|
||||
node_zfs_zpool_state{state="unavail",zpool="poolz1"} 0
|
||||
# HELP node_zfs_zpool_wcnt kstat.zfs.misc.io.wcnt
|
||||
# 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
|
||||
# TYPE node_zfs_zpool_state gauge
|
||||
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="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="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="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="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="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="pool2"} 0
|
||||
node_zfs_zpool_state{state="unavail",zpool="poolz1"} 0
|
||||
# HELP node_zfs_zpool_wcnt kstat.zfs.misc.io.wcnt
|
||||
# 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"
|
||||
)
|
||||
|
||||
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) {
|
||||
file, err := os.Open(procFilePath(path))
|
||||
|
|
|
@ -535,6 +535,15 @@ func TestPoolStateParsing(t *testing.T) {
|
|||
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()
|
||||
if err != nil {
|
||||
|
|
Loading…
Reference in a new issue