HttpReports 基于.NET Core 开拓的APM监控系统,利用MIT开源协议,主要成果包罗,统计, 阐明, 可视化, 监控,追踪等,适合在中小项目中利用。
github:https://github.com/dotnetcore/HttpReports
我也很侥幸在.NET Conf 2020 大会上, 做了简朴的分享,开源不易,感乐趣的同学接待Star,支持一下...
项目布局用户会见了我们的三个措施,每个措施都安装了HttpReports,它认真收罗一些措施的数据和指标,然后通过Http的方法发送到Collector,简朴处理惩罚后,会录入到差异的数据库中,同时,HttpReports.UI 认真把这些数据多维度的展示出来。
快速开始接下来,我会构建监控的 Dashboard,然后在我们的.NET Core 措施中安装HttpReports来收集数据,最后展示到UI上,让我们看看这有多简朴!
首先,需要初始化数据库,来存储收集的数据,这里我利用的是MySql数据库(可能是SqlServer,PostgreSQL), 我手动建设了一个数据库 HttpReports, 记着这个地点,后边会用到。
引用 HttpReports.Dashboard首先,我们需要构建 Dashboard 来吸收,处理惩罚和展示数据,Dashboard 利用了 Vue + Antv + ElementUI 构建了页面,然后把静态文件打包到了措施集,我们只要在.NET Core 应用中,通过Nuget安装即可。
新建一个 .Net Core 的空的Web项目,支持 2.1 及以上版本
新建完成后,通过Nuget包别离安装 HttpReports.Dashboard ,HttpReports.MySQL(可能是HttpReports.SqlServer, HttpReports.PostgreSQL)。
安装完成之后,需要简朴的设置一下,我们直接修改项目标 appsetting.json 文件
{ "HttpReportsDashboard": { "ExpireDay": 3, "Storage": { "ConnectionString": "DataBase=HttpReports;Data Source=localhost;User Id=root;Password=123456;", "DeferSecond": 3, "DeferThreshold": 10 }, "Check": { "Mode": "Self", "Switch": true, "Endpoint": "", "Range": "500,2000" }, "Mail": { "Server": "smtp.163.com", "Port": 465, "Account": "HttpReports@qq.com", "Password": "*******", "EnableSsL": true, "Switch": true } } }
此刻参数有许多,不要担忧,我们此刻只需要查抄数据库的毗连字符串,确保让它可以乐成的毗连到你的数据库,其他的参数,你可以在官方的文档中找到它们,本文就不再多说。
修改完 appsetting.json 后,我们接着修改 Dahboard 项目标 Startup.cs 文件:
public void ConfigureServices(IServiceCollection services) { services.AddHttpReportsDashboard().AddMySqlStorage(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseHttpReportsDashboard(); }
然后 Run,假如没有问题的话,会跳转到Dashboard的登岸页面,默认的账号:admin 暗码: 123456
此刻我们有了 Dashboard,可是没有数据, 我们还需要在我们的.NET Core 应用中安装HttpReports,它认真收罗和发送数据。
引用HttpReports我新建了一个 WebAPI 项目 UserService(用户处事) ,然后我们通过 Nuget 别离安装 HttpReports , HttpReports.Transport.Http。
安装完成后,同样的,我们修改 appsettings.json,简朴设置一下
{ "HttpReports": { "Transport": { "CollectorAddress": "http://localhost:5000/", "DeferSecond": 10, "DeferThreshold": 100 }, "Server": "http://localhost:7000", "Service": "User", "Switch": true, "RequestFilter": [ "/api/health/*", "/HttpReports*" ], "WithRequest": true, "WithResponse": true, "WithCookie": true, "WithHeader": true } }
参数先容:
Transport - CollectorAddress - 数据批量发送的地点,设置Dashboard 的项目地点即可
Server - 处事的地点,User处事我用了localhost:7000
Service - 处事名称 User
修改完成后,我们接着修改 UserService 项目标 Startup.cs 文件
app.UseHttpReports();
这一行必然要放到 UseRouting() 和 UseEndpoints()要领 的上面。