コード例 #1
0
        protected override void Run()
        {
            try
            {
                if (GlobalNodeConfig.NodeInfo.ifmonitor == 0)
                {
                    return;
                }
                if (pcounts.Count <= 0)
                {
                    return;
                }
                tb_nodeperformance model           = new tb_nodeperformance();
                string             fileinstallpath = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\');
                double             dirsizeM        = -1;
                if (System.IO.Directory.Exists(fileinstallpath))
                {
                    long dirsize = IOHelper.DirSize(new DirectoryInfo(fileinstallpath));
                    dirsizeM             = (double)dirsize / 1024 / 1024;
                    model.installdirsize = (double)dirsizeM;
                }

                foreach (var p in pcounts)
                {
                    var c = p.Collect();
                    if (p.Name.Contains("cpu"))
                    {
                        model.cpu = (double)c;
                    }
                    else if (p.Name.Contains("内存"))
                    {
                        model.memory = (double)c;
                    }
                    else if (p.Name.Contains("网络发送"))
                    {
                        model.networkupload = (double)c;
                    }
                    else if (p.Name.Contains("网络下载"))
                    {
                        model.networkdownload = (double)c;
                    }
                    else if (p.Name.Contains("物理磁盘读"))
                    {
                        model.ioread = (double)c;
                    }
                    else if (p.Name.Contains("物理磁盘写"))
                    {
                        model.iowrite = (double)c;
                    }
                    else if (p.Name.Contains("IIS请求"))
                    {
                        model.iisrequest = (double)c;
                    }
                }
                model.nodeid         = GlobalNodeConfig.NodeID;
                model.lastupdatetime = DateTime.Now;
                AddNodePerformanceRequest req = new AddNodePerformanceRequest()
                {
                    NodePerformance = model, Source = Source.Node, MonitorClassName = this.GetType().Name
                };
                var r = NodeProxy.PostToServer <EmptyResponse, AddNodePerformanceRequest>(ProxyUrl.AddNodePerformance_Url, req);
                if (r.Status != ResponesStatus.Success)
                {
                    LogProxy.AddNodeErrorLog("节点性能上报出错,请求地址:" + ProxyUrl.AddNodePerformance_Url + ",请求内容:" + JsonConvert.SerializeObject(req) + ",返回结果:" + JsonConvert.SerializeObject(r));
                }
            }
            catch (Exception ex)
            {
                LogProxy.AddNodeErrorLog("节点性能监控时出错:nodeid=" + GlobalNodeConfig.NodeID + ",异常信息:" + JsonConvert.SerializeObject(ex));
            }
        }
コード例 #2
0
 public AddNodePerformanceRequest()
 {
     NodePerformance = new tb_nodeperformance();
 }