master
go 18 lines 637 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package powervault
4
5 // collectDriveMetrics reports per-drive temperature, power-on hours, and SSD life.
6 // Uses cached discovery data — no API calls.
7 func (c *Collector) collectDriveMetrics() {
8 for _, d := range c.discovered.drives {
9 id := d.Location
10 c.mx.drive.temperature.WithLabelValues(id).Observe(float64(d.TempNumeric))
11 c.mx.drive.powerOnHours.WithLabelValues(id).Observe(float64(d.PowerOnHours))
12
13 // SSD life left: 255 means N/A (HDD). Only report for SSDs.
14 if d.SSDLifeLeft != 255 {
15 c.mx.drive.ssdLifeLeft.WithLabelValues(id).Observe(float64(d.SSDLifeLeft))
16 }
17 }
18 }