test: add physical_disk collector test and fixture
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
6244100886
commit
0afa5b0e19
2 changed files with 58 additions and 0 deletions
1
collector/fixtures/node_disks.json
Normal file
1
collector/fixtures/node_disks.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"data":[{"devpath":"/dev/nvme0n1","health":"PASSED","wearout":95,"size":7681501126656,"model":"VV007680KYFFL","serial":"ADD3NA317I0104K2N","type":"nvme","used":"LVM","osdid":"8","osdid-list":["8"],"bluestore":1},{"devpath":"/dev/nvme1n1","health":"PASSED","wearout":88,"size":7681501126656,"model":"VV007680KYFFL","serial":"ADD3NA317I0104K2O","type":"nvme","used":"LVM","osdid":"9","osdid-list":["9","10"],"bluestore":1},{"devpath":"/dev/nvme4n1","health":"UNKNOWN","wearout":"N/A","size":480036519936,"model":"HPE NS204i-u","serial":"PXTYH0ARHJS080","type":"nvme","used":"BIOS boot","osdid":-1,"osdid-list":null}]}
|
||||||
57
collector/physical_disk_test.go
Normal file
57
collector/physical_disk_test.go
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
package collector
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log/slog"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
"github.com/prometheus/client_golang/prometheus/testutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestPhysicalDiskCollector(t *testing.T) {
|
||||||
|
client := newTestClient(t, map[string]string{
|
||||||
|
"/nodes/node01/disks/list": "node_disks.json",
|
||||||
|
})
|
||||||
|
|
||||||
|
collector := newPhysicalDiskCollector(slog.Default())
|
||||||
|
collector.SetNodes([]string{"node01"})
|
||||||
|
adapter := &testCollectorAdapter{client: client, collector: collector}
|
||||||
|
|
||||||
|
reg := prometheus.NewRegistry()
|
||||||
|
reg.MustRegister(adapter)
|
||||||
|
|
||||||
|
expected := `
|
||||||
|
# HELP pve_physical_disk_health 1 if SMART health is PASSED, 0 otherwise.
|
||||||
|
# TYPE pve_physical_disk_health gauge
|
||||||
|
pve_physical_disk_health{devpath="/dev/nvme0n1",model="VV007680KYFFL",node="node01",serial="ADD3NA317I0104K2N",type="nvme"} 1
|
||||||
|
pve_physical_disk_health{devpath="/dev/nvme1n1",model="VV007680KYFFL",node="node01",serial="ADD3NA317I0104K2O",type="nvme"} 1
|
||||||
|
pve_physical_disk_health{devpath="/dev/nvme4n1",model="HPE NS204i-u",node="node01",serial="PXTYH0ARHJS080",type="nvme"} 0
|
||||||
|
# HELP pve_physical_disk_info Physical disk information.
|
||||||
|
# TYPE pve_physical_disk_info gauge
|
||||||
|
pve_physical_disk_info{devpath="/dev/nvme0n1",model="VV007680KYFFL",node="node01",serial="ADD3NA317I0104K2N",type="nvme",used="LVM"} 1
|
||||||
|
pve_physical_disk_info{devpath="/dev/nvme1n1",model="VV007680KYFFL",node="node01",serial="ADD3NA317I0104K2O",type="nvme",used="LVM"} 1
|
||||||
|
pve_physical_disk_info{devpath="/dev/nvme4n1",model="HPE NS204i-u",node="node01",serial="PXTYH0ARHJS080",type="nvme",used="BIOS boot"} 1
|
||||||
|
# HELP pve_physical_disk_osd Disk-to-OSD mapping.
|
||||||
|
# TYPE pve_physical_disk_osd gauge
|
||||||
|
pve_physical_disk_osd{devpath="/dev/nvme0n1",node="node01",osd="osd.8"} 1
|
||||||
|
pve_physical_disk_osd{devpath="/dev/nvme1n1",node="node01",osd="osd.9"} 1
|
||||||
|
pve_physical_disk_osd{devpath="/dev/nvme1n1",node="node01",osd="osd.10"} 1
|
||||||
|
# HELP pve_physical_disk_size_bytes Physical disk size in bytes.
|
||||||
|
# TYPE pve_physical_disk_size_bytes gauge
|
||||||
|
pve_physical_disk_size_bytes{devpath="/dev/nvme0n1",node="node01"} 7.681501126656e+12
|
||||||
|
pve_physical_disk_size_bytes{devpath="/dev/nvme1n1",node="node01"} 7.681501126656e+12
|
||||||
|
pve_physical_disk_size_bytes{devpath="/dev/nvme4n1",node="node01"} 4.80036519936e+11
|
||||||
|
# HELP pve_physical_disk_wearout_remaining_ratio Wearout remaining as a ratio (1.0 = new).
|
||||||
|
# TYPE pve_physical_disk_wearout_remaining_ratio gauge
|
||||||
|
pve_physical_disk_wearout_remaining_ratio{devpath="/dev/nvme0n1",node="node01"} 0.95
|
||||||
|
pve_physical_disk_wearout_remaining_ratio{devpath="/dev/nvme1n1",node="node01"} 0.88
|
||||||
|
`
|
||||||
|
|
||||||
|
if err := testutil.GatherAndCompare(reg, strings.NewReader(expected),
|
||||||
|
"pve_physical_disk_health", "pve_physical_disk_wearout_remaining_ratio",
|
||||||
|
"pve_physical_disk_size_bytes", "pve_physical_disk_info", "pve_physical_disk_osd",
|
||||||
|
); err != nil {
|
||||||
|
t.Errorf("unexpected metrics: %s", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue