//Métodos privados private void StartConn() { try { if (environment.VirtualUsers < 1) { environment.VirtualUsers = 1; } if (environment.VirtualUsers > 1000) { Console.WriteLine("ConnectionCount exede o limite estabelecido de 1000. Valor alterado para este limite"); environment.VirtualUsers = 1000; } _running = true; Int32 queueCount = (Int32)environment.VirtualUsers / 10; queueCount = 3; if (queueCount <= 0) { queueCount = 1; } _queue = new DBQueue[queueCount]; for (Int32 i = 0; i < queueCount; i++) { _queue[i] = new DBQueue(); } for (Int32 i = 0; i < queueCount; i++) { //ChangeDB(i); Debug.WriteLine("procQueue.Start(i); " + i); _queue[i] = new DBQueue(); Thread procQueue = new Thread(new ParameterizedThreadStart(ProcQueue)); procQueue.Start(i); } _debug = false; userCollection = new VirtualUserCollection(environment); userCollection.EnableDebug = true; userCollection.OnVUCountReceived += new VirtualUserCollection.VUCountReceived(evtOnVUCountReceived); userCollection.OnResultReceived += new VirtualUserCollection.ResultReceived(evtOnResultReceived); userCollection.OnErrorReceived += new VirtualUserCollection.ErrorReceived(evtOnErrorReceived); userCollection.OnDebugEvent += new VirtualUserCollection.DebugEvent(evtOnDebugEvent); userCollection.OnErrorReceived += new VirtualUserCollection.ErrorReceived(evtOnErrorReceived); userCollection.Start(); } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); SendText("StartConn Error:", ex.Message); } }
//Métodos privados private void StartConn() { try { _running = true; Int32 queueCount = (Int32)environment.ZabbixMonitors.Count; queueCount = 3; if (queueCount <= 0) { queueCount = 1; } _queue = new DBQueue[queueCount]; //Inicia as theads de monitoramento Int32 i = 0; foreach (ZabbixConfig cfg in environment.ZabbixMonitors) { //ChangeDB(i); //Console.WriteLine(text); #if DEBUG Console.WriteLine("procQueue.Start(i); " + i); #endif _queue[i] = new DBQueue(); Thread procQueue = new Thread(new ParameterizedThreadStart(ProcQueue)); procQueue.Start(i); new Thread(new ParameterizedThreadStart(CounterProc)).Start(new MonitorTheadStarter(cfg, "system.cpu.util[,,avg1]", i)); new Thread(new ParameterizedThreadStart(CounterProc)).Start(new MonitorTheadStarter(cfg, "system.cpu.load[percpu,avg1]", i)); new Thread(new ParameterizedThreadStart(CounterMem)).Start(new MonitorTheadStarter(cfg, "", i)); //Busca as interfaces de rede using (Zabbix zbx = new Zabbix(cfg.Host, cfg.Port)) { List <String> exclusionList = new List <string>(); exclusionList.Add("Bluetooth"); exclusionList.Add("TAP-Windows"); exclusionList.Add("WFP"); exclusionList.Add("QoS"); exclusionList.Add("Diebold"); exclusionList.Add("Microsoft Kernel Debug"); exclusionList.Add("WAN Miniport"); exclusionList.Add("Loopback"); exclusionList.Add("Wi-Fi Direct Virtual"); exclusionList.Add("Filter Driver"); exclusionList.Add("Pseudo-Interface"); String netIfs = zbx.GetItem("net.if.discovery"); IfRet interfaces = JSON.Deserialize2 <IfRet>(netIfs); if ((interfaces != null) && (interfaces.data != null)) { foreach (Dictionary <String, String> dic in interfaces.data) { if (dic != null) { foreach (String val in dic.Values) { if (!String.IsNullOrWhiteSpace(val)) { Boolean monitor = true; foreach (String e in exclusionList) { if (val.IndexOf(e, StringComparison.CurrentCultureIgnoreCase) >= 0) { monitor = false; } } if (monitor) { new Thread(new ParameterizedThreadStart(CounterProcNet)).Start(new MonitorTheadStarter(cfg, val, i)); // new Thread(new ParameterizedThreadStart(CounterProcNet)).Start(new MonitorTheadStarter(cfg, val, i)); } } } } } } } i++; } } catch (Exception ex) { Console.WriteLine(ex.Message + ex.StackTrace); SendText("StartConn Error:", ex.Message); } }