Beispiel #1
0
        private void CounterMem(Object st)
        {
            MonitorTheadStarter info = (MonitorTheadStarter)st;

            Zabbix zbx = new Zabbix(info.config.Host, info.config.Port);

            //String tmp = zbx.GetItem(info.key);

            //new Thread(new ParameterizedThreadStart(CounterMem)).Start(new MonitorTheadStarter(cfg, "vm.memory.size[total]", i));
            //new Thread(new ParameterizedThreadStart(CounterMem)).Start(new MonitorTheadStarter(cfg, "vm.memory.size[available]", i));

            while (_running)
            {
                try
                {
                    double total     = double.Parse(zbx.GetItem("vm.memory.size[total]"));
                    double available = double.Parse(zbx.GetItem("vm.memory.size[available]"));
                    double used      = total - available;

                    _queue[info.index].Add(new ZabbixQueueItem(DateTime.Now, info.config.Host, "vm.memory", (Int64)total, (Int64)used));
                }
                catch { }


                Thread.Sleep(10000);
            }
        }
Beispiel #2
0
        private void CounterProc(Object st)
        {
            MonitorTheadStarter info = (MonitorTheadStarter)st;

            Zabbix zbx = new Zabbix(info.config.Host, info.config.Port);

            //String tmp = zbx.GetItem(info.key);

            while (_running)
            {
                switch (info.key.ToLower())
                {
                case "system.cpu.util[,,avg1]":
                    try
                    {
                        String tmp3 = zbx.GetItem(info.key).Replace(".", ",");
                        double tmp  = double.Parse(tmp3);
                        _queue[info.index].Add(new ZabbixQueueItem(DateTime.Now, info.config.Host, info.key, 100, (Int64)tmp));
                    }
                    catch { }
                    break;

                case "system.cpu.load[percpu,avg1]":
                    try
                    {
                        String tmp3 = zbx.GetItem(info.key).Replace(".", ",");
                        double tmp  = double.Parse(tmp3) * 100F;
                        _queue[info.index].Add(new ZabbixQueueItem(DateTime.Now, info.config.Host, info.key, 100, (Int64)tmp));
                    }
                    catch { }
                    break;

                default:
                    try
                    {
                        Int64 tmp = Int64.Parse(zbx.GetItem(info.key));
                        _queue[info.index].Add(new ZabbixQueueItem(DateTime.Now, info.config.Host, info.key, 0, tmp));
                    }
                    catch { }
                    break;
                }

                Thread.Sleep(10000);
            }
        }
Beispiel #3
0
        private void CounterProcNet(Object st)
        {
            MonitorTheadStarter info = (MonitorTheadStarter)st;

            Zabbix zbx = new Zabbix(info.config.Host, info.config.Port);
            //String tmp = zbx.GetItem(info.key);

            //

            ZabbixQueueItem lastIn  = null;
            ZabbixQueueItem lastOut = null;

            while (_running)
            {
                try
                {
                    if (lastIn == null)
                    {
                        lastIn = new ZabbixQueueItem(DateTime.Now, info.config.Host, info.key, 0, Int64.Parse(zbx.GetItem("net.if.in[" + info.key + "]")));
                    }

                    if (lastOut == null)
                    {
                        lastOut = new ZabbixQueueItem(DateTime.Now, info.config.Host, info.key, 0, Int64.Parse(zbx.GetItem("net.if.out[" + info.key + "]")));
                    }

                    ZabbixQueueItem actualIn  = new ZabbixQueueItem(DateTime.Now, info.config.Host, info.key, 0, Int64.Parse(zbx.GetItem("net.if.in[" + info.key + "]")));
                    ZabbixQueueItem actualOut = new ZabbixQueueItem(DateTime.Now, info.config.Host, info.key, 0, Int64.Parse(zbx.GetItem("net.if.out[" + info.key + "]")));

                    try
                    {
                        double lapIn  = ((TimeSpan)(actualIn.date - lastIn.date)).TotalSeconds;
                        double lapIn2 = double.Parse(actualIn.value.ToString()) - double.Parse(lastIn.value.ToString());

                        double valueIn = (lapIn2 / lapIn);

                        if (double.IsNaN(valueIn) || double.IsInfinity(valueIn))
                        {
                            valueIn = 0;
                        }

                        if (valueIn < 0)
                        {
                            valueIn = 0;
                        }

                        double lapOut  = ((TimeSpan)(actualOut.date - lastOut.date)).TotalSeconds;
                        double lapOut2 = double.Parse(actualOut.value.ToString()) - double.Parse(lastOut.value.ToString());

                        double valueOut = (lapOut2 / lapOut);

                        if (double.IsNaN(valueOut) || double.IsInfinity(valueOut))
                        {
                            valueOut = 0;
                        }

                        if (valueOut < 0)
                        {
                            valueOut = 0;
                        }

                        _queue[info.index].Add(new ZabbixQueueNetworkItem(actualIn.date, actualIn.host, info.key, ((Int64)valueIn), ((Int64)valueOut)));

                        lastIn  = actualIn;
                        lastOut = actualOut;
                    }
                    catch { }
                }
                catch { }
                finally
                {
                    Thread.Sleep(10000);
                }
            }
        }