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); } }
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); } }
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); } } }