| 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 | } |