68 lines
2.5 KiB
Go
68 lines
2.5 KiB
Go
package collector
|
|
|
|
import (
|
|
"log/slog"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/testutil"
|
|
)
|
|
|
|
func TestNodeStatusCollector(t *testing.T) {
|
|
client := newTestClient(t, map[string]string{
|
|
"/nodes/node01/status": "node_status.json",
|
|
})
|
|
|
|
collector := newNodeStatusCollector(slog.Default())
|
|
collector.SetNodes([]string{"node01"})
|
|
adapter := &testCollectorAdapter{client: client, collector: collector}
|
|
|
|
reg := prometheus.NewRegistry()
|
|
reg.MustRegister(adapter)
|
|
|
|
expected := `
|
|
# HELP pve_node_boot_mode_info Node boot mode information.
|
|
# TYPE pve_node_boot_mode_info gauge
|
|
pve_node_boot_mode_info{mode="efi",node="node01",secureboot="0"} 1
|
|
# HELP pve_node_ksm_shared_bytes KSM shared memory in bytes.
|
|
# TYPE pve_node_ksm_shared_bytes gauge
|
|
pve_node_ksm_shared_bytes{node="node01"} 4096
|
|
# HELP pve_node_load1 1-minute load average.
|
|
# TYPE pve_node_load1 gauge
|
|
pve_node_load1{node="node01"} 3.12
|
|
# HELP pve_node_load15 15-minute load average.
|
|
# TYPE pve_node_load15 gauge
|
|
pve_node_load15{node="node01"} 2.79
|
|
# HELP pve_node_load5 5-minute load average.
|
|
# TYPE pve_node_load5 gauge
|
|
pve_node_load5{node="node01"} 2.88
|
|
# HELP pve_node_rootfs_available_bytes Root filesystem available space in bytes.
|
|
# TYPE pve_node_rootfs_available_bytes gauge
|
|
pve_node_rootfs_available_bytes{node="node01"} 6.6943684608e+10
|
|
# HELP pve_node_rootfs_total_bytes Root filesystem total size in bytes.
|
|
# TYPE pve_node_rootfs_total_bytes gauge
|
|
pve_node_rootfs_total_bytes{node="node01"} 1.0086172672e+11
|
|
# HELP pve_node_rootfs_used_bytes Root filesystem used space in bytes.
|
|
# TYPE pve_node_rootfs_used_bytes gauge
|
|
pve_node_rootfs_used_bytes{node="node01"} 2.874730496e+10
|
|
# HELP pve_node_swap_free_bytes Free swap in bytes.
|
|
# TYPE pve_node_swap_free_bytes gauge
|
|
pve_node_swap_free_bytes{node="node01"} 8.58888192e+09
|
|
# HELP pve_node_swap_total_bytes Total swap in bytes.
|
|
# TYPE pve_node_swap_total_bytes gauge
|
|
pve_node_swap_total_bytes{node="node01"} 8.589930496e+09
|
|
# HELP pve_node_swap_used_bytes Used swap in bytes.
|
|
# TYPE pve_node_swap_used_bytes gauge
|
|
pve_node_swap_used_bytes{node="node01"} 1.048576e+06
|
|
`
|
|
|
|
if err := testutil.GatherAndCompare(reg, strings.NewReader(expected),
|
|
"pve_node_load1", "pve_node_load5", "pve_node_load15",
|
|
"pve_node_swap_total_bytes", "pve_node_swap_used_bytes", "pve_node_swap_free_bytes",
|
|
"pve_node_rootfs_total_bytes", "pve_node_rootfs_used_bytes", "pve_node_rootfs_available_bytes",
|
|
"pve_node_ksm_shared_bytes", "pve_node_boot_mode_info",
|
|
); err != nil {
|
|
t.Errorf("unexpected metrics: %s", err)
|
|
}
|
|
}
|