// // GET: /Cluster/MonitorInfo/ public ActionResult Index(string keyword, string serverid, string monitorjsonkeyword, string ifrefreash, int pageindex = 1, int pagesize = 10) { ViewBag.keyword = keyword; ViewBag.monitorjsonkeyword = monitorjsonkeyword; ViewBag.ifrefreash = ifrefreash; PagedList <tb_cluster_monitorinfo_model> pageList = null; int count = 0; List <tb_cluster_monitorinfo_model> List = new List <tb_cluster_monitorinfo_model>(); using (DbConn PubConn = DbConfig.CreateConn(Config.ClusterConnectString)) { PubConn.Open(); ViewBag.SqlTimeNow = PubConn.GetServerDate(); tb_cluster_monitorinfo_dal dal = new tb_cluster_monitorinfo_dal(); List = dal.GetList(PubConn, keyword, serverid, monitorjsonkeyword, pagesize, pageindex, out count); } pageList = new PagedList <tb_cluster_monitorinfo_model>(List, pageindex, pagesize, count); Dictionary <int, List <Dyd.BaseService.Monitor.Core.CollectConfig> > ServerConfigDic = new Dictionary <int, List <Dyd.BaseService.Monitor.Core.CollectConfig> >(); SqlHelper.ExcuteSql(Config.PlatformManageConnectString, (c) => { tb_cluster_dal dal = new tb_cluster_dal(); var list = dal.GetListInIds(c, List.Select(o => o.serverid).ToList()); foreach (var o in list) { var config = new XXF.Serialization.JsonHelper().Deserialize <List <Dyd.BaseService.Monitor.Core.CollectConfig> >(o.monitorcollectconfigjson); ServerConfigDic.Add(o.id, config); } }); ViewBag.ServerConfigDic = ServerConfigDic; if (Request.IsAjaxRequest()) { return(PartialView("List", pageList)); } return(View(pageList)); }
// // GET: /Manage/Manage/ public ActionResult Index(string id, string keyword, string CStime, string CEtime, int pagesize = 10, int pageindex = 1) { ViewBag.keyword = keyword; ViewBag.CStime = CStime; ViewBag.CEtime = CEtime; ViewBag.pagesize = pagesize; ViewBag.pageindex = pageindex; ViewBag.SqlTimeNow = DateTime.Now; ViewBag.id = id; tb_cluster_dal dal = new tb_cluster_dal(); PagedList <tb_cluster_model> pageList = null; int count = 0; using (DbConn PubConn = DbConfig.CreateConn(Config.PlatformManageConnectString)) { PubConn.Open(); List <tb_cluster_model> List = dal.GetList(PubConn, id, keyword, CStime, CEtime, pagesize, pageindex, out count); using (DbConn MonitorConn = DbConfig.CreateConn(Config.ClusterConnectString)) { MonitorConn.Open(); tb_cluster_monitorinfo_dal monitordal = new tb_cluster_monitorinfo_dal(); for (int i = 0; i < List.Count; i++) { List[i].MonitorJson = monitordal.GetServerMonitorJson(MonitorConn, List[i].id); } } pageList = new PagedList <tb_cluster_model>(List, pageindex, pagesize, count); ViewBag.SqlTimeNow = PubConn.GetServerDate(); } if (Request.IsAjaxRequest()) { return(PartialView("List", pageList)); } return(View(pageList)); }
/// <summary> /// 检查监控信息的预警 /// </summary> private void CheckMonitorInfoWarning() { try { string waringmsg = ""; List <tb_cluster_model> clusters = new List <tb_cluster_model>(); SqlHelper.ExcuteSql(GlobalConfig.MonitorPlatformManageConnectString, (c) => { tb_cluster_dal dal = new tb_cluster_dal(); clusters = dal.GetAllList(c); }); clusters.ForEach(o => { if (o.ifmonitor == true) { tb_cluster_monitorinfo_model monitorinfo = null; SqlHelper.ExcuteSql(MonitorClusterConnectString, (c) => { tb_cluster_monitorinfo_dal dal = new tb_cluster_monitorinfo_dal(); monitorinfo = dal.GetByServerId(c, o.id); }); if (monitorinfo != null) { var collectconfigs = new XXF.Serialization.JsonHelper().Deserialize <List <CollectConfig> >(o.monitorcollectconfigjson); foreach (var config in collectconfigs) { waringmsg += GetWarnningInfo(config, monitorinfo, o); } } } }); if (waringmsg != "") { TaskLogHelper.Error("检查监控信息的预警", "服务器性能检查(预警值检查)" + "\r\n" + waringmsg, "集群性能预警任务"); } } catch (Exception exp) { this.OpenOperator.Error("【集群性能预警任务】检查监控信息的预警", exp); } }
protected override void Run() { if (GlobalConfig.ClusterModel.ifmonitor == false) { return; } List <ClusterMonitorInfo> cmis = new List <ClusterMonitorInfo>(); foreach (var p in pcounts) { var c = p.Collect(); cmis.Add(new ClusterMonitorInfo(p.Name, c.ToString("F2"), (double)c)); } if (dct.IsCollect == true) { string msg = ""; double minfreespace = 1000000; foreach (var d in dct.Collect()) { minfreespace = Math.Min(minfreespace, d.FreeSpace); msg += string.Format("[{0}]:{1}(G)/{2}(G)\r\n", d.Name, d.FreeSpace.ToString("F2"), d.TotalSpace.ToString("F2")); } cmis.Add(new ClusterMonitorInfo(dct.Name, msg, minfreespace)); } if (mct.IsCollect == true) { var mper = mct.Collect(); cmis.Add(new ClusterMonitorInfo(mct.Name, string.Format("剩余/总量:{0}(M)/{1}(M) 已用:{2}%", ConvertHelper.ByteToM(mper.AvailablePhysicalMemory).ToString("F2"), ConvertHelper.ByteToM(mper.TotalPhysicalMemory).ToString("F2"), mper.UserdPercent), mper.UserdPercent)); } SqlHelper.ExcuteSql(DbShardingHelper.GetDataBase(GlobalConfig.DataBaseConfigModels.Select(c1 => (dynamic)c1).ToList(), DataBaseType.Cluster), (c) => { tb_cluster_monitorinfo_dal dal = new tb_cluster_monitorinfo_dal(); dal.AddOrUpdate(c, new tb_cluster_monitorinfo_model() { lastupdatetime = c.GetServerDate(), serverid = GlobalConfig.ClusterModel.id, monitorinfojson = new JsonHelper().Serializer(cmis) }); }); }
public bool StatisServerMinitor() { List <tb_cluster_model> dataBaseList = GetEnableServer(); tb_performance_dayreport_dal dal = new tb_performance_dayreport_dal(); tb_performance_dayreport_model staticDayReport = new tb_performance_dayreport_model(); DateTime dateNow = new DateTime(); string day = ""; string date = ""; string ConnectionCluster = ""; int updateMinite = 0; using (DbConn ManConn = DbConfig.CreateConn(XXF.Common.XXFConfig.MonitorPlatformConnectionString)) { ManConn.Open(); ConnectionCluster = new tb_database_config_dal().GetDataBaseSqlConn(ManConn, (int)DataBaseType.Cluster); dateNow = ManConn.GetServerDate(); day = dateNow.ToString("yyyyMMdd"); date = dateNow.ToString("yyyy-MM-dd"); tb_keyvalue_config_model keymodel = new tb_keyvalue_config_dal().Get(ManConn, "SaveServerMonitorIntervalTime"); updateMinite = Convert.ToInt32(keymodel.value); } using (DbConn PubConn = DbConfig.CreateConn(ConnectionCluster)) { PubConn.Open(); if ((dateNow - LastReserverdServerMonitorTime).TotalMinutes > updateMinite) { int i = new tb_cluster_monitorinfo_dal().ReseverdServerMonitor(PubConn); LastReserverdServerMonitorTime = dateNow; } Dictionary <int, tb_performance_dayreport_model> dayReportList = new tb_performance_dayreport_dal().GetAutoTaskList(PubConn, date); foreach (tb_cluster_model m in dataBaseList) { if (dayReportList.Keys.Contains(m.id)) { tb_performance_dayreport_model oldStaticDayReport = dayReportList[m.id]; staticDayReport = dal.GetStaticMonitor(PubConn, day, oldStaticDayReport.serverid, oldStaticDayReport.lastmaxid); if (staticDayReport != null) { tb_performance_dayreport_model newStaticDayReport = new tb_performance_dayreport_model() { id = oldStaticDayReport.id, serverid = m.id, avgcpu = (oldStaticDayReport.avgcpu * oldStaticDayReport.count + staticDayReport.avgcpu * staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count), maxcpu = oldStaticDayReport.maxcpu > staticDayReport.maxcpu ? oldStaticDayReport.maxcpu : staticDayReport.maxcpu, mincpu = oldStaticDayReport.mincpu <staticDayReport.mincpu?oldStaticDayReport.mincpu : staticDayReport.mincpu, avgmemory = (oldStaticDayReport.avgmemory *oldStaticDayReport.count + staticDayReport.avgmemory *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count), maxmemory = oldStaticDayReport.maxmemory> staticDayReport.maxmemory ? oldStaticDayReport.maxmemory : staticDayReport.maxmemory, minmemory = oldStaticDayReport.minmemory <staticDayReport.minmemory?oldStaticDayReport.minmemory : staticDayReport.minmemory, avgnetworkupload = (oldStaticDayReport.avgnetworkupload *oldStaticDayReport.count + staticDayReport.avgnetworkupload *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count), maxnetworkupload = oldStaticDayReport.maxnetworkupload> staticDayReport.maxnetworkupload ? oldStaticDayReport.maxnetworkupload : staticDayReport.maxnetworkupload, minnetworkupload = oldStaticDayReport.minnetworkupload <staticDayReport.minnetworkupload?oldStaticDayReport.minnetworkupload : staticDayReport.minnetworkupload, avgnetworkdownload = (oldStaticDayReport.avgnetworkdownload *oldStaticDayReport.count + staticDayReport.avgnetworkdownload *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count), maxnetworkdownload = oldStaticDayReport.maxnetworkdownload> staticDayReport.maxnetworkdownload ? oldStaticDayReport.maxnetworkdownload : staticDayReport.maxnetworkdownload, minnetworkdownload = oldStaticDayReport.minnetworkdownload <staticDayReport.minnetworkdownload?oldStaticDayReport.minnetworkdownload : staticDayReport.minnetworkdownload, avgioread = (oldStaticDayReport.avgioread *oldStaticDayReport.count + staticDayReport.avgioread *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count), maxioread = oldStaticDayReport.maxioread> staticDayReport.maxioread ? oldStaticDayReport.maxioread : staticDayReport.maxioread, minioread = oldStaticDayReport.minioread <staticDayReport.minioread?oldStaticDayReport.minioread : staticDayReport.minioread, avgiowrite = (oldStaticDayReport.avgiowrite *oldStaticDayReport.count + staticDayReport.avgiowrite *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count), maxiowrite = oldStaticDayReport.maxiowrite> staticDayReport.maxiowrite ? oldStaticDayReport.maxiowrite : staticDayReport.maxiowrite, miniowrite = oldStaticDayReport.miniowrite <staticDayReport.miniowrite?oldStaticDayReport.miniowrite : staticDayReport.miniowrite, avgiisrequest = (oldStaticDayReport.avgiisrequest *oldStaticDayReport.count + staticDayReport.avgiisrequest *staticDayReport.count) / (oldStaticDayReport.count + staticDayReport.count), maxiisrequest = oldStaticDayReport.maxiisrequest> staticDayReport.maxiisrequest ? oldStaticDayReport.maxiisrequest : staticDayReport.maxiisrequest, miniisrequest = oldStaticDayReport.miniisrequest < staticDayReport.miniisrequest ? oldStaticDayReport.miniisrequest : staticDayReport.miniisrequest, lastmaxid = staticDayReport.lastmaxid, count = oldStaticDayReport.count + staticDayReport.count, lastupdatetime = dateNow, }; dal.Update(PubConn, newStaticDayReport); } } else { staticDayReport = dal.GetStaticMonitor(PubConn, day, m.id, 0); if (staticDayReport == null) { staticDayReport = new tb_performance_dayreport_model(); } staticDayReport.serverid = m.id; staticDayReport.date = dateNow; dal.AddStatis(PubConn, staticDayReport); } } return(true); } }