func()

in tool/data/config/metric/collection.go [42:100]


func (config *Collection) ToMap(ctx *runtime.Context) (string, map[string]interface{}) {
	resultMap := make(map[string]interface{})
	if ctx.OsParameter == util.OsTypeWindows {
		if config.WinLogicalDisk != nil {
			util.AddToMap(ctx, resultMap, config.WinLogicalDisk)
		}
		if config.WinPhysicalDisk != nil {
			util.AddToMap(ctx, resultMap, config.WinPhysicalDisk)
		}
		if config.WinMemory != nil {
			util.AddToMap(ctx, resultMap, config.WinMemory)
		}
		if config.WinNetworkInterface != nil {
			util.AddToMap(ctx, resultMap, config.WinNetworkInterface)
		}
		if config.WinProcessor != nil {
			util.AddToMap(ctx, resultMap, config.WinProcessor)
		}
		if config.WinTCPv4 != nil {
			util.AddToMap(ctx, resultMap, config.WinTCPv4)
		}
		if config.WinTCPv6 != nil {
			util.AddToMap(ctx, resultMap, config.WinTCPv6)
		}
		if config.WinPagingFile != nil {
			util.AddToMap(ctx, resultMap, config.WinPagingFile)
		}
	} else {
		//Difficult to check an interface is nil or not. https://github.com/golang/go/issues/17346
		if config.CPU != nil {
			util.AddToMap(ctx, resultMap, config.CPU)
		}
		if config.Disk != nil {
			util.AddToMap(ctx, resultMap, config.Disk)
		}
		if config.DiskIO != nil {
			util.AddToMap(ctx, resultMap, config.DiskIO)
		}
		if config.Memory != nil {
			util.AddToMap(ctx, resultMap, config.Memory)
		}
		if config.Net != nil {
			util.AddToMap(ctx, resultMap, config.Net)
		}
		if config.NetStat != nil {
			util.AddToMap(ctx, resultMap, config.NetStat)
		}
		if config.Swap != nil {
			util.AddToMap(ctx, resultMap, config.Swap)
		}
		if config.CollectD != nil {
			util.AddToMap(ctx, resultMap, config.CollectD)
		}
	}
	if config.StatsD != nil {
		util.AddToMap(ctx, resultMap, config.StatsD)
	}
	return "metrics_collected", resultMap
}