[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/onuadaptercore/device_handler.go b/internal/pkg/onuadaptercore/device_handler.go
index 7405f20..bc8a185 100644
--- a/internal/pkg/onuadaptercore/device_handler.go
+++ b/internal/pkg/onuadaptercore/device_handler.go
@@ -256,7 +256,8 @@
logger.Errorw(ctx, "Device FSM: Can't go to state DeviceInit", log.Fields{"err": err})
}
logger.Debugw(ctx, "Device FSM: ", log.Fields{"state": string(dh.pDeviceStateFsm.Current())})
- if device.PmConfigs == nil { // device.PmConfigs is not nil in cases when adapter restarts. We should not re-set the core again.
+ // device.PmConfigs is not nil in cases when adapter restarts. We should not re-set the core again.
+ if device.PmConfigs == nil {
// Now, set the initial PM configuration for that device
if err := dh.coreProxy.DevicePMConfigUpdate(ctx, dh.pmConfigs); err != nil {
logger.Errorw(ctx, "error updating pm config to core", log.Fields{"device-id": dh.deviceID, "err": err})
@@ -1542,7 +1543,8 @@
}
}
}
- // Stop collector routine for PM Counters
+
+ // Stop collector routine
dh.stopCollector <- true
return nil
@@ -2587,7 +2589,7 @@
// Check if standalone metric related config is updated
for _, v := range pmConfigs.Metrics {
dh.pOnuMetricsMgr.onuMetricsManagerLock.RLock()
- m, ok := dh.pOnuMetricsMgr.groupMetricMap[v.Name]
+ m, ok := dh.pOnuMetricsMgr.standaloneMetricMap[v.Name]
dh.pOnuMetricsMgr.onuMetricsManagerLock.RUnlock()
if ok && m.frequency != v.SampleFreq {
@@ -2625,9 +2627,9 @@
// If the current time is eqaul to or greater than the nextGlobalMetricCollectionTime, collect the group and standalone metrics
if time.Now().Equal(dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime) || time.Now().After(dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime) {
go dh.pOnuMetricsMgr.collectAllGroupAndStandaloneMetrics(ctx)
+ // Update the next metric collection time.
+ dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime = time.Now().Add(time.Duration(dh.pmConfigs.DefaultFreq) * time.Second)
}
- // Update the next metric collection time.
- dh.pOnuMetricsMgr.nextGlobalMetricCollectionTime = time.Now().Add(time.Duration(dh.pmConfigs.DefaultFreq) * time.Second)
} else {
if dh.pmConfigs.Grouped { // metrics are managed as a group
// parse through the group and standalone metrics to see it is time to collect their metrics