首页统计的是当天每个时段的异常数量, 使用的是echarts组件, 红框所示, 可以选择不同的系统进行查看。

得益于echarts的强大功能, 你可以使用柱状图来查看。

站点列表, 就是使用异常日志报警服务的站点, 主要包括名称, 域名, 负责人及负责人联系方式, 以及健康检查页面等信息。

点击修改可以对站点信息进行维护。

点击服务器列表, 可以将该站点下的服务器加入进来

异常信息查看。

点击查看,可以查看更详细的信息。




Admin:后台管理
API:服务接口, 用于接收异常日志信息
Business:业务逻辑层, 封装了对数据库的访问
Dto:数据实体,用于前端的显示。
HandleService:处理异常信息, 发送通知
HealthyCheckService:站点健康检查服务,主要是模拟请求, 监测站点是否正常。
Model:数据库实体
Utility:工具类合集
Warning-client:客户端, 可以方便集成。
其中数据访问使用了petapoco,一个简单的ORM工具, 速度仅次于Dapper, 但是功能比Dapper丰富, 支持类似EF方式的增删改, 同时支持类似Dapper的查询, 并支持分页。
前台显示使用了Dto, Dto和Model的映射是用AutoMapper
因为项目复杂度在可控范围内, 所以我并没有独立数据访问层和业务逻辑层, 很多的数据库操作分散在了代码中,当然这不是一个好习惯, 随着业务的发展,复杂度也会上升。
除了引用客户端以外, 我们还需要在使用的站点中做如下的配置, 其中WebToken就是之前分配的站点Token , 是为了标示一个站点, 这个信息会随异常信息一起发送到服务端。 Module就是为了捕获未处理的异常, 上传异常信息的地址已经硬编码在代码中。 当然做成配置的会更好。
