summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/scaleio/collect_sdc.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/modules/scaleio/collect_sdc.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/scaleio/collect_sdc.go b/src/go/collectors/go.d.plugin/modules/scaleio/collect_sdc.go
new file mode 100644
index 000000000..e840b781d
--- /dev/null
+++ b/src/go/collectors/go.d.plugin/modules/scaleio/collect_sdc.go
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package scaleio
+
+import "github.com/netdata/netdata/go/go.d.plugin/modules/scaleio/client"
+
+func (s *ScaleIO) collectSdc(ss map[string]client.SdcStatistics) map[string]sdcMetrics {
+ ms := make(map[string]sdcMetrics, len(ss))
+
+ for id, stats := range ss {
+ sdc, ok := s.discovered.sdc[id]
+ if !ok {
+ continue
+ }
+ var m sdcMetrics
+ m.BW.set(
+ calcBW(stats.UserDataReadBwc),
+ calcBW(stats.UserDataWriteBwc),
+ )
+ m.IOPS.set(
+ calcIOPS(stats.UserDataReadBwc),
+ calcIOPS(stats.UserDataWriteBwc),
+ )
+ m.IOSize.set(
+ calcIOSize(stats.UserDataReadBwc),
+ calcIOSize(stats.UserDataWriteBwc),
+ )
+ m.MappedVolumes = stats.NumOfMappedVolumes
+ m.MDMConnectionState = isSdcConnected(sdc.MdmConnectionState)
+
+ ms[id] = m
+ }
+ return ms
+}
+
+func isSdcConnected(state string) bool {
+ return state == "Connected"
+}