github.com/netdata/go.d.plugin@v0.58.1/modules/scaleio/collect_sdc.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package scaleio
     4  
     5  import "github.com/netdata/go.d.plugin/modules/scaleio/client"
     6  
     7  func (s ScaleIO) 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 := s.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  }