diff --git a/metric-collector.go b/metric-collector.go index b709512..8121141 100644 --- a/metric-collector.go +++ b/metric-collector.go @@ -211,6 +211,21 @@ func mainFunc() int { } rcfg.Duration = time.Duration(rcfg.ConfigFile.Duration) * time.Second + if len(rcfg.ConfigFile.RouterConfigFile) == 0 { + cclog.Error("Metric router configuration file must be set") + return 1 + } + + if len(rcfg.ConfigFile.SinkConfigFile) == 0 { + cclog.Error("Sink configuration file must be set") + return 1 + } + + if len(rcfg.ConfigFile.CollectorConfigFile) == 0 { + cclog.Error("Metric collector configuration file must be set") + return 1 + } + // err = CreatePidfile(rcfg.CliArgs["pidfile"]) // Set log file @@ -222,42 +237,36 @@ func mainFunc() int { rcfg.MultiChanTicker = mct.NewTicker(rcfg.Interval) // Create new metric router - if len(rcfg.ConfigFile.RouterConfigFile) > 0 { - rcfg.MetricRouter, err = mr.New(rcfg.MultiChanTicker, &rcfg.Sync, rcfg.ConfigFile.RouterConfigFile) - if err != nil { - cclog.Error(err.Error()) - return 1 - } + rcfg.MetricRouter, err = mr.New(rcfg.MultiChanTicker, &rcfg.Sync, rcfg.ConfigFile.RouterConfigFile) + if err != nil { + cclog.Error(err.Error()) + return 1 } // Create new sink - if len(rcfg.ConfigFile.SinkConfigFile) > 0 { - rcfg.SinkManager, err = sinks.New(&rcfg.Sync, rcfg.ConfigFile.SinkConfigFile) - if err != nil { - cclog.Error(err.Error()) - return 1 - } - - // Connect metric router to sink manager - RouterToSinksChannel := make(chan lp.CCMetric, 200) - rcfg.SinkManager.AddInput(RouterToSinksChannel) - rcfg.MetricRouter.AddOutput(RouterToSinksChannel) + rcfg.SinkManager, err = sinks.New(&rcfg.Sync, rcfg.ConfigFile.SinkConfigFile) + if err != nil { + cclog.Error(err.Error()) + return 1 } + // Connect metric router to sink manager + RouterToSinksChannel := make(chan lp.CCMetric, 200) + rcfg.SinkManager.AddInput(RouterToSinksChannel) + rcfg.MetricRouter.AddOutput(RouterToSinksChannel) + // Create new collector manager - if len(rcfg.ConfigFile.CollectorConfigFile) > 0 { - rcfg.CollectManager, err = collectors.New(rcfg.MultiChanTicker, rcfg.Duration, &rcfg.Sync, rcfg.ConfigFile.CollectorConfigFile) - if err != nil { - cclog.Error(err.Error()) - return 1 - } - - // Connect collector manager to metric router - CollectToRouterChannel := make(chan lp.CCMetric, 200) - rcfg.CollectManager.AddOutput(CollectToRouterChannel) - rcfg.MetricRouter.AddCollectorInput(CollectToRouterChannel) + rcfg.CollectManager, err = collectors.New(rcfg.MultiChanTicker, rcfg.Duration, &rcfg.Sync, rcfg.ConfigFile.CollectorConfigFile) + if err != nil { + cclog.Error(err.Error()) + return 1 } + // Connect collector manager to metric router + CollectToRouterChannel := make(chan lp.CCMetric, 200) + rcfg.CollectManager.AddOutput(CollectToRouterChannel) + rcfg.MetricRouter.AddCollectorInput(CollectToRouterChannel) + // Create new receive manager if len(rcfg.ConfigFile.ReceiverConfigFile) > 0 { rcfg.ReceiveManager, err = receivers.New(&rcfg.Sync, rcfg.ConfigFile.ReceiverConfigFile)