/// <summary> /// Starts up the agent. /// </summary> public void Start() { Log.Info("Initializing TabMon.."); // Assert that runtime options are valid. if (!TabMonOptions.Instance.Valid()) { Log.Fatal("Invalid TabMon options specified!\nAborting.."); return; } // Read Counters.config & create counters. Log.Info(String.Format(@"Loading performance counters from {0}\{1}..", Directory.GetCurrentDirectory(), PathToCountersConfig)); ICollection<ICounter> counters; try { counters = CounterConfigLoader.Load(PathToCountersConfig, options.Hosts); } catch (ConfigurationErrorsException ex) { Log.Error(String.Format("Failed to correctly load '{0}': {1}\nAborting..", PathToCountersConfig, ex.Message)); return; } Log.Debug(String.Format("Successfully loaded {0} {1} from configuration file.", counters.Count, "counter".Pluralize(counters.Count))); // Spin up counter sampler. sampler = new CounterSampler(counters, options.TableName); // Kick off the polling timer. Log.Info("TabMon initialized! Starting performance counter polling.."); timer = new Timer(callback: Poll, state: null, dueTime: 0, period: options.PollInterval * 1000); }
/// <summary> /// Starts up the agent. /// </summary> public void Start() { Log.Info("Initializing TabMon.."); // Assert that runtime options are valid. if (!TabMonOptions.Instance.Valid()) { Log.Fatal("Invalid TabMon options specified!\nAborting.."); return; } // Spin up counter sampler. try { sampler = new CounterSampler(options.Hosts, options.TableName); } catch(Exception ex) { Log.ErrorFormat("Failed to initialize counter sampler using counters from configuration file: {0}\nAborting..", ex.Message); return; } // Kick off the polling timer. Log.Info("TabMon initialized! Starting performance counter polling.."); timer = new Timer(callback: OnTimer, state: null, dueTime: 0, period: options.PollInterval * 1000); }