管理站点

对于管理站点, 并没有太复杂的内容, 主要就是对数据库表中的数据进行维护。 
管理的实体有3个 WebSite(站点信息), WebService(站点服务器信息), ErrorEntity(异常信息), 其中WebSite和WebService是一对多的关系。 WebSite和ErrorEntity也是一对多的关系。关于实体的维护就不说了, 这里主要说一下报表的开发。 
在打开后台站点的时候, 我们首先看到的是一张报表,这里采用的组件是百度的echarts, 报表统计的是当天每个时段的异常数量。 
 
这里就是如何把数据库中异常信息按照小时统计出来, 见如下sql
select count(ErrorEntity.id) Cnt,datepart(hh,DateTime) Hour
from ErrorEntity inner join WebSite on WebSite.WebToken = ErrorEntity.WebToken
where WebSite.WebName='{2}' and DateTime between '{0}' and '{1}'
group by datepart(hh,DateTime)
DateTime字段是一个标准的时间格式, datepart函数可以取出小时, 再通过group by 就可以按照小时来统计, 当然取出来的都是有数据的时段, 对于没有数据的时段,我们要将对应到数据置为0。从高性能的角度来讲,这并不是一个好的解决方案, 在数据量巨大时, 查询会慢, 我们可以将统计前置, 在HandleService中, 我们就可以进行统计, 当从Redis中获取一个异常信息时, 按照时间,把他累加到一个数组中, 然后定时同步到数据库中。 或者后台异步统计, 每10分钟生成一次数据, 并插入到临时表,查询从临时表查。 
            var count = new int[];
string siteName = context.Request.QueryString["WebName"] ?? "";
if (siteName != "")
{
IEnumerable<ReportDto> reportDtos =
_reportBusiness.GetList(string.Format(sql, DateTime.Now.ToString("yyyy-MM-dd 00:00:00"),
DateTime.Now.ToString("yyyy-MM-dd 23:59:59"), siteName)); foreach (ReportDto reportDto in reportDtos)
{
count[reportDto.Hour] = reportDto.Cnt;
}
}
context.Response.Write( string.Join(",", count));

.Net分布式异常报警系统-服务端站点管理的更多相关文章

  1. .Net分布式异常报警系统-服务端Service

    服务端的2个Service 1. HandleService: 从Redis中获取异常信息, 入库并发送通知到相关责任人.  2. HealthyCheckService: 对站点指定页面进行模拟访问 ...

  2. .Net分布式异常报警系统-客户端及服务端API

    客户端 客户端的作用就是捕获未处理异常, 发送异常到服务端. 关于捕获未处理异常的方法参考 http://www.cnblogs.com/youring2/archive/2012/04/25/246 ...

  3. .Net分布式异常报警系统-简介

    系统简介 分布式异常报警系统就是收集系统运行过程中产生的未处理异常,检查系统运行的状态,并将异常信息统一发送到服务端,由服务端将信息通知到相关的责任人.  问题 我们在项目开发中可能遇到以下几个问题: ...

  4. .Net分布式异常报警系统-项目介绍

    后台管理  首页统计的是当天每个时段的异常数量, 使用的是echarts组件, 红框所示, 可以选择不同的系统进行查看.     得益于echarts的强大功能, 你可以使用柱状图来查看.     站 ...

  5. 【分布式】Zookeeper服务端启动

    一.前言 前面已经了解了Zookeeper会话相关知识点,接着来学习Zookeeper服务端相关细节. 二.服务端 服务端整体架构如下 Zookeeper服务器的启动,大致可以分为以下五个步骤 1. ...

  6. 分布式监控CAT服务端的本地部署

    一.CAT简介 CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统.美团点评基础架构部希望在基础存储.高性能通信.大规模在 ...

  7. .net core 3.0 Signalr - 07 业务实现-服务端 自定义管理组、用户、连接

    Hub的管理 重写OnConnectedAsync 从连接信息中获取UserId.Groups,ConnectId,并实现这三者的关系,存放于redis中 代码请查看 using CTS.Signal ...

  8. puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置

    1.  概述 puppet是一个开源的软件自动化配置和部署工具,它使用简单且功能强大,正得到了越来越多地关注,现在很多大型IT公司均在使用puppet对集群中的软件进行管理和部署,如google利用p ...

  9. java.net.SocketException:Software caused connection abort: recv failed 异常分析 +socket客户端&服务端代码

    java.net.SocketException:Software caused connection abort: recv failed 异常分析 分类: 很多的技术 2012-01-04 12: ...

随机推荐

  1. 0020 Java学习笔记-面向对象-变量

    变量分为哪些 成员变量:类里面,方法外面定义的变量 实例变量:没有用static修饰的变量,属于对象:存在期:创建实例-销毁实例:作用域:与该实例的生存范围相同 类变量:用static修饰的变量,属于 ...

  2. java.lang.UnsatisfiedLinkError: Unable to load library 'xxx': Native library (win32-x86-64/ID_Fpr.dll)

    使用 JNA 调用 dll 库,因为 dll 库是32 位的,而 jvm 是 64位的,所以发生的错误: java.lang.UnsatisfiedLinkError: Unable to load ...

  3. Linux 多线程条件变量同步

    条件变量是线程同步的另一种方式,实际上,条件变量是信号量的底层实现,这也就意味着,使用条件变量可以拥有更大的自由度,同时也就需要更加小心的进行同步操作.条件变量使用的条件本身是需要使用互斥量进行保护的 ...

  4. 描述Linux下文件删除的原理(计时3分钟)

    Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除.一般来说,每个文件都有2个link计数器:i_count 和 i_nlink. i_coun ...

  5. TCMalloc 安装和使用

    前面三篇译文<TCMalloc:线程缓冲的Malloc>.<使用TCMalloc的堆栈检查>.<使用TCMalloc进行堆栈分析>介绍了TCMalloc的基本原理, ...

  6. [译] OpenStack Kilo 版本中 Neutron 的新变化

    OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些 ...

  7. poj 2481

    Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 16163   Accepted: 5380 Description ...

  8. Android Fragment 你应该知道的一切

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42628537,本文出自:[张鸿洋的博客] 很久以前写过两篇Fragment的介绍 ...

  9. sql问题集合

    1.sqlparameter @ 写在from前面

  10. java工程中的.classpathaaaaaaaaaaaaaaaa<转载>

    第一部分:classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class. eclipse build path是ec ...