test: add vm_pressure collector test and fixture
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
496a46460c
commit
1e4e3af1d5
2 changed files with 53 additions and 0 deletions
1
collector/fixtures/node_qemu_pressure.json
Normal file
1
collector/fixtures/node_qemu_pressure.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"data":[{"vmid":112,"status":"running","name":"karmada","cpus":4,"pressurecpusome":1.5,"pressurecpufull":0.3,"pressurememorysome":2.1,"pressurememoryfull":0.0,"pressureiosome":0.8,"pressureiofull":0.1,"mem":6287664128,"maxmem":8589934592},{"vmid":104,"status":"stopped","name":"test3","cpus":2,"mem":0,"maxmem":4294967296}]}
|
||||
52
collector/vm_pressure_test.go
Normal file
52
collector/vm_pressure_test.go
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
package collector
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/prometheus/client_golang/prometheus/testutil"
|
||||
)
|
||||
|
||||
func TestVMPressureCollector(t *testing.T) {
|
||||
client := newTestClient(t, map[string]string{
|
||||
"/nodes/node01/qemu": "node_qemu_pressure.json",
|
||||
})
|
||||
|
||||
collector := newVMPressureCollector(slog.Default())
|
||||
collector.SetNodes([]string{"node01"})
|
||||
adapter := &testCollectorAdapter{client: client, collector: collector}
|
||||
|
||||
reg := prometheus.NewRegistry()
|
||||
reg.MustRegister(adapter)
|
||||
|
||||
expected := `
|
||||
# HELP pve_vm_pressure_cpu_full_ratio CPU pressure (full) ratio.
|
||||
# TYPE pve_vm_pressure_cpu_full_ratio gauge
|
||||
pve_vm_pressure_cpu_full_ratio{id="qemu/112",node="node01"} 0.003
|
||||
# HELP pve_vm_pressure_cpu_some_ratio CPU pressure (some) ratio.
|
||||
# TYPE pve_vm_pressure_cpu_some_ratio gauge
|
||||
pve_vm_pressure_cpu_some_ratio{id="qemu/112",node="node01"} 0.015
|
||||
# HELP pve_vm_pressure_io_full_ratio I/O pressure (full) ratio.
|
||||
# TYPE pve_vm_pressure_io_full_ratio gauge
|
||||
pve_vm_pressure_io_full_ratio{id="qemu/112",node="node01"} 0.001
|
||||
# HELP pve_vm_pressure_io_some_ratio I/O pressure (some) ratio.
|
||||
# TYPE pve_vm_pressure_io_some_ratio gauge
|
||||
pve_vm_pressure_io_some_ratio{id="qemu/112",node="node01"} 0.008
|
||||
# HELP pve_vm_pressure_memory_full_ratio Memory pressure (full) ratio.
|
||||
# TYPE pve_vm_pressure_memory_full_ratio gauge
|
||||
pve_vm_pressure_memory_full_ratio{id="qemu/112",node="node01"} 0
|
||||
# HELP pve_vm_pressure_memory_some_ratio Memory pressure (some) ratio.
|
||||
# TYPE pve_vm_pressure_memory_some_ratio gauge
|
||||
pve_vm_pressure_memory_some_ratio{id="qemu/112",node="node01"} 0.021
|
||||
`
|
||||
|
||||
if err := testutil.GatherAndCompare(reg, strings.NewReader(expected),
|
||||
"pve_vm_pressure_cpu_some_ratio", "pve_vm_pressure_cpu_full_ratio",
|
||||
"pve_vm_pressure_memory_some_ratio", "pve_vm_pressure_memory_full_ratio",
|
||||
"pve_vm_pressure_io_some_ratio", "pve_vm_pressure_io_full_ratio",
|
||||
); err != nil {
|
||||
t.Errorf("unexpected metrics: %s", err)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue