mirror of
https://github.com/prometheus/node_exporter.git
synced 2024-12-28 23:19:46 -08:00
f47abc5d06
This collector exports the following metrics: - raid_drive_temperature: drive temperature - raid_drive_count: drive error and event counters - raid_adapter_disk_presence: disk presence per adapter
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
// +build megacli
|
|
|
|
package collector
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
const (
|
|
testMegaCliAdapter = "fixtures/megacli_adapter.txt"
|
|
testMegaCliDisks = "fixtures/megacli_disks.txt"
|
|
|
|
physicalDevicesExpected = "5"
|
|
virtualDevicesDegraded = "0"
|
|
)
|
|
|
|
func TestMegaCliAdapter(t *testing.T) {
|
|
data, err := os.Open(testMegaCliAdapter)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
stats, err := parseMegaCliAdapter(data)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if stats["Device Present"]["Physical Devices"] != physicalDevicesExpected {
|
|
t.Fatalf("Unexpected device count: %d != %d", stats["Device Present"]["Physical Devices"], physicalDevicesExpected)
|
|
}
|
|
|
|
if stats["Device Present"]["Degraded"] != virtualDevicesDegraded {
|
|
t.Fatal()
|
|
}
|
|
}
|
|
|
|
func TestMegaCliDisks(t *testing.T) {
|
|
data, err := os.Open(testMegaCliDisks)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
stats, err := parseMegaCliDisks(data)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if stats[32][0]["Drive Temperature"] != "37C (98.60 F)" {
|
|
t.Fatalf("Unexpected drive temperature: %s", stats[32][0]["Drive Temperature"])
|
|
}
|
|
|
|
if stats[32][3]["Predictive Failure Count"] != "23" {
|
|
t.Fatal()
|
|
}
|
|
}
|