简单介绍

HttpReports 是 .Net Core 下的一个Web项目, 适用于WebAPI,Ocelot网关应用,MVC项目,非常适合针对微服务应用使用,通过中间件的形式集成到您的项目中,可以让开发人员快速的搭建出一个 数据统计,分析,图表,监控 一体化的 Web站点。



主要模块

主要包含HttpReports 中间件 和 HttpReports.Web 的MVC项目;

HttpReports:https://github.com/SpringLeee/HttpReports

HttpReports.Web:https://github.com/SpringLeee/HttpReportsWeb

在线预览:http://175.102.11.117:8801 账号 admin 密码 123456

支持项目类型

???? 单个WebAPI应用
???? 多个独立WebAPI应用
???? Ocelot 网关应用
???? 单个MVC项目
???? 多个MVC项目

如何使用

1.添加 HttpReports 中间件

Nuget 包安装 HttpReports, 打开Startup.cs, 修改 ConfigureServices(IServiceCollection services) 方法,添加以下代码,放在 services.AddMvc() 之前都可以。

选择您的应用类型:

???? 单个WebAPI应用 或者 使用Ocelot网关的应用

修改 ConfigureServices 方法 ,

    public void ConfigureServices(IServiceCollection services){// 添加HttpReports中间件services.AddHttpReportsMiddlewire(WebType.API, DBType.SqlServer);services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);}

???? ** 多个独立的WebAPI应用 **

假设有一个 授权(Auth)API应用,和一个支付(Pay)API应用,并且没有使用网关,需要分别在两个项目的Startup.cs文件的 ConfigureServices 方法中分别添加以下代码:

授权API应用(Auth)
services.AddHttpReportsMiddlewire(WebType.API, DBType.SqlServer,"Auth");
支付Pay应用(Pay)
services.AddHttpReportsMiddlewire(WebType.API, DBType.SqlServer,"Pay");

???? 单个MVC应用

    public void ConfigureServices(IServiceCollection services){// 添加HttpReports中间件services.AddHttpReportsMiddlewire(WebType.MVC, DBType.SqlServer);services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);}

???? 多个MVC应用

假设有一个 电商(Mall)应用,和一个支付(Pay)应用,需要分别在两个项目的Startup.cs文件的 ConfigureServices 方法中分别添加以下代码:

电商MVC应用 (Mall)
services.AddHttpReportsMiddlewire(WebType.MVC, DBType.SqlServer,"Mall");
支付MVC应用 (Pay)
services.AddHttpReportsMiddlewire(WebType.MVC, DBType.SqlServer,"Pay");

???? 切换数据库

使用MySql数据库

 services.AddHttpReportsMiddlewire(WebType.API, DBType.MySql);

使用SqlServer数据库

 services.AddHttpReportsMiddlewire(WebType.API, DBType.SqlServer);
2.使用 HttpReports 中间件

修改 StartUp.cs 的 Configure 方法

.Net Core 2.2

    public void Configure(IApplicationBuilder app, IHostingEnvironment env){//使用HttpReportsapp.UseHttpReportsMiddlewire();app.UseMvc();}

必须要放在 UseMVC() 方法和其他中间件的前边,否则不生效。

.Net Core 3.0 和以上版本

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env){//使用HttpReportsapp.UseHttpReportsMiddlewire();app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints =>{endpoints.MapControllers();});}

必须要放在 UseEndpoints() 方法和其他中间件的前边,否则不生效。

3. appsettings.json 配置连接字符串

打开 appsetting.json, 添加数据库连接字符串, 需要手动创建数据库 HttpReports

"ConnectionStrings": {"HttpReports": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;"}
4. 运行Web应用

到这一步,已经配置完成了, 直接运行Web应用,如果中间有报错的话,可能是因为数据库的连接问题,请检查后再重试,如果没有报错的话,打开数据库 [HttpReports].[dbo].[RequestInfo], 如果能看到有数据记录,就说明 HttpReports 中间件的部分配置完成了,数据有了,下边开始配置 HttpReportsWeb 站点。


HttpReports.Web部分

github源码:https://github.com/SpringLeee/HttpReportsWeb
有需要的也可以下载源码后编译,默认的git分支是Core 2.2 版本,还有一个 core 3.0的分支;

这里提供 core2.2 和 3.0 的发布版本下载:

Core 2.2 发布版本:https://files.cnblogs.com/files/myshowtime/HttpReports2.2.zip
Core 3.0 发布版本:https://files.cnblogs.com/files/myshowtime/HttpReports3.0.zip

这里以 .Net Core2.2 版本为例, 下载发布版本后,解压文件, 找到 appsettings.json文件,并修改

{"ConnectionStrings": {"HttpReports": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;"   },"HttpReportsConfig": {"DBType": "SqlServer", // MySql Or SqlServer"UserName": "admin","Password": "123456"}
}
字段 说明
HttpReports 数据库连接字符串,要和上边配置的中间件的数据库一致
DBType 数据库类型 SqlServer MySql , 注意没有空格
UserName Web站点后台登录名,可修改
Password Web站点后台登录密码,可修改

修改数据库类型和连接字符串, 然后打开命令行,启动程序,或者部署到站点也可以

dotnet HttpReports.Web.dll

跳到登录页,输入默认账号 admin 密码 123456,登录到系统,看一下主要的几个页面

主页面

主要是Web应用 请求次数, 请求时间, 请求错误,错误率TOP, 响应最快和响应最慢等, 按天,月,年进行趋势分析, 服务节点 点击可以选中和取消,并且可以切换亮色和暗色主题

预警监控

HttpReports 监控预警主要针对以下几点:

???? 响应超时
???? 请求错误
???? IP异常
???? 请求量监控

如何添加监控:

这里演示添加一个监控,监控频率 选1小时,也就是1个小时 运行一次,然后填入预警的收件邮箱,可填写多个邮箱, 服务节点 可以选中单个和多个节点,默认的话,下边 4个监控都是关闭状态, 如果需要勾选启动即可

响应超时监控配置

预防一段时间内接口大量超时,设置超时时间为4000ms , 超时率为0.05% (最多支持两位小数,设置值要带上%号)

请求错误监控配置

预防一段时间内接口大量错误,设置错误HTTP状态码为500,503, 超时率为20%

IP异常监控配置

预防机器人请求,防止一段时间大量重复IP请求,设置IP重复率为15%

请求量监控

预防短时间内接口新增大量的请求,造成系统异常,设置 单位时间 请求量为100000,当请求量达到这个值触发预警

保存任务,任务自动运行,监控频率可以逐渐修改,找到适合系统的预警值, 如果数据达到预警值时,您就会收到HttpReports 发送给您的预警通知邮件

项目环境基本要求

使用HttpReports中间件的.Net Core 版本 2.2, 3.0, 3.1;

HttpReports.Web 的core版本为 2.2 , 3.0

性能事项

HttpReports 中间件存储数据是异步操作,所以对api接口请求的时间可以忽略, 存储数据是也只是存储基本信息,对请求内容和响应内容不作记录,后台监控任务采用Quartz.Net实现

下面是用PostMan做的一个简单测试:

WebAPI内的方法:

        public string Sql1(){SqlConnection con = new SqlConnection("Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HyBasicData;");var list1 =  con.Query(" select * from [HyBasicData].[dbo].[Customers] ");var list2 = con.Query(" select * from [HyBasicData].[dbo].[Customers] ");var list3 = con.Query(" select * from [HyBasicData].[dbo].[Customers] ");return list1.Count().ToString();}

PostMan分别对添加中间件和不添加中间件的 API请求 1000次,每300ms请求一次

说明 请求次数 平均响应时间 ms
原生API 1000 32.535
使用中间件 1000 32.899

总结

HttpReports 后台使用简单三层,前端使用BootStrap,如果你想给你的程序,快速的添加一套分析,图表,监控系统 ,那么使用HttpReports 是一个不错的选择,如果能帮助到您的话,还请希望给个Star, 感谢 ????

https://github.com/SpringLeee/HttpReports

MIT

交流反馈

如果您在项目中使用了HttpReports,欢迎添加QQ群, 有想法 有建议,有bug 都欢迎大家来沟通, 也可以添加我的微信,希望可以帮助到您

微服务统计,分析,图表,监控一体化的HttpReports项目在.Net Core 中的使用相关推荐

  1. 微服务统计,分析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用...

    前言介绍 HttpReports 是针对.Net Core 开发的轻量级APM系统,基于MIT开源协议, 使用HttpReports可以快速搭建.Net Core环境下统计,分析,图表,监控,分布式追 ...

  2. 微服务来了,监控怎么办?

    设想今天是个愉快的周末,天气很好,你带着孩子在公园闲逛,这时候,一条短信来了: 瞬间整个人都不好了,到底怎么回事,上面的业务有没有预警,赶紧把相关人召集一下,最好赶紧去下公司吧!也许这时候你会想:能不 ...

  3. Spring Cloud构建微服务架构:Hystrix监控数据聚合【Dalston版】

    上一篇我们介绍了使用Hystrix Dashboard来展示Hystrix用于熔断的各项度量指标.通过Hystrix Dashboard,我们可以方便的查看服务实例的综合情况,比如:服务调用次数.服务 ...

  4. 基于Spring Cloud的微服务架构分析

    点击关注公众号,实用技术文章及时了解 来源:blog.caogo.cn/2021/06/20/ 基于Spring-Cloud的微服务架构分析 Spring Cloud是一个相对比较新的微服务框架,20 ...

  5. Spring Cloud构建微服务架构:Hystrix监控面板【Dalston版】

    在上一篇<服务容错保护(hystrix断路器)>的介绍中,我们提到断路器是根据一段时间窗内的请求情况来判断并操作断路器的打开和关闭状态的.而这些请求情况的指标信息都是HystrixComm ...

  6. 51信用卡在微服务架构下的监控平台架构实践

    一.背景介绍 51信用卡的技术架构是基于Spring Cloud所打造的微服务体系,随着业务的飞速发展,不断增多的微服务以及指标给监控平台带来了极大的挑战.监控团队在开源vs自研,灵活vs稳定等问题上 ...

  7. 基于 Spring Cloud 的微服务架构分析

    -     前言    - Spring Cloud是一个相对比较新的微服务框架,2016年才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, ...

  8. 基于网络抓包实现kubernetes中微服务的应用级监控

    微服务是什么? 此话题不是本文重点,如你还不知道.请谷歌一波,会有遍地的解释.引用下图说明下微服务可能呈现的形态: 微服务监控的挑战 监控的目的是为了让集群中所有的服务组件,不管是HTTP服务,数据库 ...

  9. .net中调用esb_大型ESB服务总线平台服务运行分析和监控预警实践

    今天准备谈下ESB总线平台建设项目中的服务运行统计分析,服务心跳监测,服务监控预警方面的设计和实现.可以看到,在一个ESB服务总线平台上线后,SOA治理管控就变得相当重要,而这些运行监控分析本身也是提 ...

最新文章

  1. 2018-4-7 包子阳书本39页例题
  2. Python 文件操作二
  3. centos7每天定时删除备份mysql文件
  4. web python pkcs11_使用pkcs11模块用公钥加密数据失败
  5. C# 数据类型及相互转换及常用基础
  6. 【渝粤教育】国家开放大学2018年秋季 1007t公司财务 参考试题
  7. asterisk架构
  8. Python批量提取Excel文件中的图片
  9. Android 强升逻辑和实现
  10. iOS内购(代码部分,swift)
  11. 怎么用matlab做系统辨识,系统辨识大牛Ljung编写的MATLAB系统辨识使用手册
  12. PhotoShop中批量导出图片
  13. Java 版本6下载大全
  14. java计算机毕业设计网上书店商城源码+系统+数据库+lw文档+mybatis+运行部署
  15. android设置管理员权限设置,android 获取超级管理员权限,进行锁屏、恢复出厂设置...
  16. android 7双排设置菜单,双排状态栏布局教程
  17. VS Code配置matlab
  18. IE下载附件,文件大小超过10M后 无法下载
  19. 一岁半小朋友的火星电话和滑滑梯
  20. 【R生态】普鲁克分析(Procrustes Analysis)

热门文章

  1. 如何判断一个字符串是不是纯数字
  2. C语言控制流对应的汇编语句
  3. 割点和桥算法——摘自《算法艺术与信息学竞赛》
  4. 将Teams app升级到net6
  5. 自定义异常最佳实践_播放,自定义和组织媒体的最佳文章
  6. 奉献一波鹅厂的面经!纪念最后的校招!| 掘金技术征文
  7. Windows Server 2012活动目录基础配置与应用(新手教程)之3---将客户机加入到指定域...
  8. XCode5 真机调试及发布应用
  9. 做移动互联网App,你的测试用例足够吗?
  10. .NET6之MiniAPI(二十五):Dapper