public MonitoringForModule(string machineName, string moduleName) { if (string.IsNullOrEmpty(machineName)) { throw new ArgumentNullException("machineName"); } if (string.IsNullOrEmpty(moduleName)) { throw new ArgumentNullException("moduleName"); } MachineName = machineName; ModuleName = moduleName; ComponentName = moduleName; // Get monitoring storage and notifies. _storage = ModuleContainer.Container.GetInstance <IMonitoringStorage>(); _notify = ModuleContainer.Container.GetInstance <IMonitoringNotify>(); _notifyEmail = ModuleContainer.Container.GetInstance <IMonitoringNotifyEmail>(); _notifySms = ModuleContainer.Container.GetInstance <IMonitoringNotifySms>(); // Prepare monitoring name. var name = "Monitoring-" + Interlocked.Increment(ref _asyncMonitoringCount); // Create and start monitoring processing queue. _monitoringQueue = new AsyncQueueBlocking <MonitoringItem>(name, BlockType.Grow); _monitoringQueue.HandleItem += Store; _monitoringQueue.StartProcessing(); }
public MonitoringController(IMonitoringStorage monitoringStorage) { _monitoringStorage = monitoringStorage; }