master
go 33 lines 617 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package powerstore
4
5 func (c *Collector) collectAlerts() {
6 c.sem <- struct{}{}
7 defer func() { <-c.sem }()
8
9 alerts, err := c.client.Alerts("ACTIVE")
10 if err != nil {
11 c.Warningf("error collecting alerts: %v", err)
12 return
13 }
14
15 var crit, major, minor, info float64
16 for _, a := range alerts {
17 switch a.Severity {
18 case "Critical":
19 crit++
20 case "Major":
21 major++
22 case "Minor":
23 minor++
24 case "Info":
25 info++
26 }
27 }
28
29 c.mx.alerts.critical.Observe(crit)
30 c.mx.alerts.major.Observe(major)
31 c.mx.alerts.minor.Observe(minor)
32 c.mx.alerts.info.Observe(info)
33 }