日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

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

發布時間:2023/12/4 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微服务统计,分析,图表,监控一体化的HttpReports项目在.Net Core 中的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單介紹

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 , 注意沒有空格
UserNameWeb站點后臺登錄名,可修改
PasswordWeb站點后臺登錄密碼,可修改

修改數據庫類型和連接字符串, 然后打開命令行,啟動程序,或者部署到站點也可以

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
原生API100032.535
使用中間件100032.899

總結

HttpReports 后臺使用簡單三層,前端使用BootStrap,如果你想給你的程序,快速的添加一套分析,圖表,監控系統 ,那么使用HttpReports 是一個不錯的選擇,如果能幫助到您的話,還請希望給個Star, 感謝 ????

https://github.com/SpringLeee/HttpReports

MIT

交流反饋

如果您在項目中使用了HttpReports,歡迎添加QQ群, 有想法 有建議,有bug 都歡迎大家來溝通, 也可以添加我的微信,希望可以幫助到您

總結

以上是生活随笔為你收集整理的微服务统计,分析,图表,监控一体化的HttpReports项目在.Net Core 中的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。