master
go 38 lines 878 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package scaleio
4
5 import "github.com/netdata/netdata/go/plugins/plugin/go.d/collector/scaleio/client"
6
7 func (c *Collector) collectSdc(ss map[string]client.SdcStatistics) map[string]sdcMetrics {
8 ms := make(map[string]sdcMetrics, len(ss))
9
10 for id, stats := range ss {
11 sdc, ok := c.discovered.sdc[id]
12 if !ok {
13 continue
14 }
15 var m sdcMetrics
16 m.BW.set(
17 calcBW(stats.UserDataReadBwc),
18 calcBW(stats.UserDataWriteBwc),
19 )
20 m.IOPS.set(
21 calcIOPS(stats.UserDataReadBwc),
22 calcIOPS(stats.UserDataWriteBwc),
23 )
24 m.IOSize.set(
25 calcIOSize(stats.UserDataReadBwc),
26 calcIOSize(stats.UserDataWriteBwc),
27 )
28 m.MappedVolumes = stats.NumOfMappedVolumes
29 m.MDMConnectionState = isSdcConnected(sdc.MdmConnectionState)
30
31 ms[id] = m
32 }
33 return ms
34 }
35
36 func isSdcConnected(state string) bool {
37 return state == "Connected"
38 }