Пример #1
0
        //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);
            }
        }
Пример #2
0
        //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);
            }
        }