master
go 47 lines 1.29 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package powerstore
4
5 func (c *Collector) collectClusterSpace() {
6 if len(c.discovered.clusters) == 0 {
7 return
8 }
9
10 c.sem <- struct{}{}
11 defer func() { <-c.sem }()
12
13 cl := c.discovered.clusters[0]
14 sm, err := c.client.SpaceMetricsByCluster(cl.ID)
15 if err != nil {
16 c.Warningf("error collecting cluster space metrics: %v", err)
17 return
18 }
19 if len(sm) == 0 {
20 return
21 }
22
23 last := sm[len(sm)-1]
24 mx := c.mx.cluster
25 if last.PhysicalTotal != nil {
26 mx.spacePhysicalTotal.Observe(float64(*last.PhysicalTotal))
27 }
28 if last.PhysicalUsed != nil {
29 mx.spacePhysicalUsed.Observe(float64(*last.PhysicalUsed))
30 }
31 if last.LogicalProvisioned != nil {
32 mx.spaceLogicalProvisioned.Observe(float64(*last.LogicalProvisioned))
33 }
34 if last.LogicalUsed != nil {
35 mx.spaceLogicalUsed.Observe(float64(*last.LogicalUsed))
36 }
37 if last.DataPhysicalUsed != nil {
38 mx.spaceDataPhysicalUsed.Observe(float64(*last.DataPhysicalUsed))
39 }
40 if last.SharedLogicalUsed != nil {
41 mx.spaceSharedLogicalUsed.Observe(float64(*last.SharedLogicalUsed))
42 }
43 mx.spaceEfficiencyRatio.Observe(float64(last.EfficiencyRatio))
44 mx.spaceDataReduction.Observe(float64(last.DataReduction))
45 mx.spaceSnapshotSavings.Observe(float64(last.SnapshotSavings))
46 mx.spaceThinSavings.Observe(float64(last.ThinSavings))
47 }