[VOL-3803] : Provide a global flag for enable/disable metrics collection at startup
- Provide a global flag for enable/disable metrics collection at startup
- Minor fixes in metrics collection code.

Change-Id: I80f89aa3416e94fc0cd64d54ba4d885139b623d1
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index 59b8da6..9ceca40 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -63,6 +63,8 @@
 	defaultTraceEnabled          = false
 	defaultTraceAgentAddress     = "127.0.0.1:6831"
 	defaultLogCorrelationEnabled = true
+
+	defaultMetricsEnabled = false
 )
 
 // AdapterFlags represents the set of configurations used by the read-write adaptercore service
@@ -99,6 +101,7 @@
 	TraceAgentAddress           string
 	LogCorrelationEnabled       bool
 	OnuVendorIds                string
+	MetricsEnabled              bool
 }
 
 // NewAdapterFlags returns a new RWCore config
@@ -135,6 +138,7 @@
 		TraceAgentAddress:           defaultTraceAgentAddress,
 		LogCorrelationEnabled:       defaultLogCorrelationEnabled,
 		OnuVendorIds:                defaultOnuVendorIds,
+		MetricsEnabled:              defaultMetricsEnabled,
 	}
 	return &adapterFlags
 }
@@ -233,6 +237,9 @@
 	help = fmt.Sprintf("List of Allowed ONU Vendor Ids")
 	flag.StringVar(&(so.OnuVendorIds), "allowed_onu_vendors", defaultOnuVendorIds, help)
 
+	help = fmt.Sprintf("Whether to enable metrics collection")
+	flag.BoolVar(&(so.MetricsEnabled), "metrics_enabled", defaultMetricsEnabled, help)
+
 	flag.Parse()
 	containerName := getContainerInfo()
 	if len(containerName) > 0 {