深圳外贸网站开发建设,闵行网站设计,洛阳集团网站建设,成品短视频源码与热门应用比较前言介绍HttpReports 是针对.Net Core 开发的轻量级APM系统#xff0c;基于MIT开源协议, 使用HttpReports可以快速搭建.Net Core环境下统计,分析,图表,监控#xff0c;分布式追踪一体化的站点#xff0c; 适应.Net Core WebAPI,MVC#xff0c;Web项目, 通过引用Nuget构建Da… 前言介绍HttpReports 是针对.Net Core 开发的轻量级APM系统基于MIT开源协议, 使用HttpReports可以快速搭建.Net Core环境下统计,分析,图表,监控分布式追踪一体化的站点 适应.Net Core WebAPI,MVCWeb项目, 通过引用Nuget构建Dashboard面板上手简单适合在微服务架构中使用。Github地址https://github.com/SpringLeee/HttpReports在线预览 https://moa.hengyinfs.com账号: admin 密码 123456开源不易感兴趣的同学欢迎 Github Star 一波...主要功能接口调用指标分析多服务节点数据聚合分析慢请求错误请求分析接口调用日志查询趋势数据分析 (维度分钟,小时,天)多类型预警监控HTTP调用分析Grpc调用分析分布式追踪多数据库支持集成方便数据库支持数据库Nuget包名称SqlServerHttpReports.SqlServerMySqlHttpReports.MySQLOracleHttpReports.OraclePostgreSQLHttpReports.PostgreSQLHttpReports Dashboard-UI快速开始 ????Step1: 初始化数据库HttpReports 需要手动创建数据库, 我这里使用 SqlServer 数据库为例创建数据库 HttpReports, 当然数据库名称可以自由定义, 后边程序要和这个数据库名字对应。Step2: 集成到WebAPI应用打开VS开发工具新建一个 WebAPI 应用这里 .Net Core 版本只要是2.0 以上即可我这里用的是3.1版本,创建完成后Nuget 包引用 HttpReports引用成功后因为我使用的是SqlServer 数据库我们再Nuget引用 HttpReports.SqlServer 包找到程序的 appsetting.json,修改为以下配置, 注意这里Storage 配置的数据库名称要和新建的数据库名称一致{HttpReports: {Storage: {ConnectionString: Max Pool Size 512;server.;uidsa;pwd123456;databaseHttpReports; },Node: UserService}
}配置完成后然后我们再修改 StartUp.cs 文件修改为以下代码public void ConfigureServices(IServiceCollection services)
{services.AddHttpReports().UseSQLServerStorage();services.AddControllers();
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{app.UseHttpReports();if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints {endpoints.MapControllers();});
}
一切准备就绪后我们启动 WebAPi并且刷新几次页面到这里为止WebAPI的部分我们已经完成了 ????Step3: 集成可视化 Dashboard使用VS新建一个 .Net Core MVC 应用, 新建完成后通过Nuget包我们分别安装 HttpReports.Dashboard HttpReports.SqlServer引用完成后修改Dahboard项目的 appsetting.json 文件, 注意数据库要一致{HttpReportsDashboard: {Storage: {ConnectionString: Max Pool Size 512;server.;uidsa;pwd123456;databaseHttpReports;}}
}
修改完成后我们接着修改 Dahboard 项目的 Startup.cs 文件public void ConfigureServices(IServiceCollection services){services.AddHttpReportsDashboard().UseSQLServerStorage();services.AddControllersWithViews();
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{app.UseHttpReportsDashboard();...
}
一切准备就绪后我们启动Dashboard 项目如果没有问题的话会跳转到Dashboard的登陆页面默认账号admin 密码: 123456 , 登陆后可修改例子中我用的是SqlServer 数据库其他的数据库也是类似的我只创建了一个WebAPI当然HttpRrports 也支持多个WebAPI我们只要修改appsetting.json 的 Node你可以设置 Node 为 UserService, OrderService... 到这里一个最简单集成 HttpReports 的例子已经完成了, 请尽情使用吧 ????Grpc 支持微服务Grpc的流行我们也做了Grpc的适配如果您的项目中使用Grpc通信的话需要在你的api项目中Nuget包引用 HttpReports.Grpc注意这里是api项目引用不是Dashboard 项目引用修改startup.cspublic void ConfigureServices(IServiceCollection services)
{services.AddHttpReports().UseSQLServerStorage().UseGrpc();services.AddControllersWithViews();
}
预警监控HttpReports.Dashboard 集成了预警监控功能使用的话需要先配置 Smtp 邮箱否则接收不到预警邮件哦我们修改Dashboard项目的appsetting.json为下面即可{HttpReportsDashboard: {Storage: {ConnectionString: Max Pool Size 512;server.;uidsa;pwd123456;databaseHttpReports;},Mail: {Server: smtp.qq.com,Port: 465,Account: ,Password: ,EnableSsL: true}}
}
监控功能主要针对以下四项监控响应超时请求错误IP异常请求量监控简单说明下监控频率 选1小时也就是1个小时 运行一次然后填入预警的收件邮箱,多个邮箱用逗号隔开, aaa.qq.com,bbb.qq.com , 服务节点 可以选中单个和多个节点默认的话下边 4个监控都是关闭状态, 如果需要勾选启动即可,具体的话这里就不多说了.预警支持 WebHook配置后可以自动把预警信息推送到您定义的地址,推送方式为Post推送{Title:...,Content:...
}最后贴上两个完整的配置文件供大家参考WebAPI端{HttpReports: {Storage: {ConnectionString: Max Pool Size 512;server.;uidsa;pwd123456;databaseHttpReports;,EnableDefer: false,DeferSecond: 20,DeferThreshold: 3},Node: UserService,Switch: true,FilterStaticFiles: true}
}
参数说明EnableDefer 开启为异步入库默认falseDeferSecond 异步入库的秒数DeferThreshold 异步入库的条数Node 服务节点名称Switch 是否开始数据收集默认trueFilterStaticFiles 收集数据是否过滤静态文件默认trueDashboard端{HttpReportsDashboard: {Storage: {ConnectionString: Max Pool Size 512;server.;uidsa;pwd123456;databaseHttpReports; },UseHome: true,ExpireDay:7,Mail: {Server: smtp.qq.com,Port: 465,Account: ,Password: ,EnableSsL: true }}
}
参数说明UseHome Dashboard使用主页路由默认为truefalse 的话路由为 localhost/DashboardExpireDay 收集数据的有效期默认30天总结HttpReports 是 .Net Core环境下开源的APM系统非常适合微服务环境中使用如果是中小型项目的话那么使用 HttpReports 是一个不错的选择, 开源不易如果能帮助到您的话还请希望给个Star 支持下 感谢 ????Github: https://github.com/SpringLeee/HttpReportsMIT协议交流反馈如果您在项目中使用了HttpReports或者感兴趣的可以加入QQ群 897216102 大家一起沟通有更新也会第一时间通知也可以添加我的微信希望可以帮助到您