亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用?HttpReports?監(jiān)控?.NET?Core?應(yīng)用程序的方法

 更新時(shí)間:2023年02月21日 15:03:03   作者:SpringLeee  
這篇文章主要介紹了使用?HttpReports?監(jiān)控?.NET?Core?應(yīng)用程序的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

簡(jiǎn)介

HttpReports 基于.NET Core 開(kāi)發(fā)的APM監(jiān)控系統(tǒng),使用MIT開(kāi)源協(xié)議,主要功能包括,統(tǒng)計(jì), 分析, 可視化, 監(jiān)控,追蹤等,適合在中小項(xiàng)目中使用。

github:https://github.com/dotnetcore/HttpReports

我也很榮幸在.NET Conf 2020 大會(huì)上, 做了簡(jiǎn)單的分享,開(kāi)源不易,感興趣的同學(xué)歡迎Star,支持一下...

在線(xiàn)預(yù)覽: http://apm.nonop.cn/
賬號(hào): admin 密碼 123456

項(xiàng)目結(jié)構(gòu)

用戶(hù)訪(fǎng)問(wèn)了我們的三個(gè)程序,每個(gè)程序都安裝了HttpReports,它負(fù)責(zé)采集一些程序的數(shù)據(jù)和指標(biāo),然后通過(guò)Http的方式發(fā)送到Collector,簡(jiǎn)單處理后,會(huì)錄入到不同的數(shù)據(jù)庫(kù)中,同時(shí),HttpReports.UI 負(fù)責(zé)把這些數(shù)據(jù)多維度的展示出來(lái)。

快速開(kāi)始

接下來(lái),我會(huì)構(gòu)建監(jiān)控的 Dashboard,然后在我們的.NET Core 程序中安裝HttpReports來(lái)收集數(shù)據(jù),最后展示到UI上,讓我們看看這有多簡(jiǎn)單!

首先,需要初始化數(shù)據(jù)庫(kù),來(lái)存儲(chǔ)收集的數(shù)據(jù),這里我使用的是MySql數(shù)據(jù)庫(kù)(或者是SqlServer,PostgreSQL), 我手動(dòng)創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù) HttpReports, 記住這個(gè)地址,后邊會(huì)用到。

引用 HttpReports.Dashboard

首先,我們需要構(gòu)建 Dashboard 來(lái)接收,處理和展示數(shù)據(jù),Dashboard 使用了 Vue + Antv + ElementUI 構(gòu)建了頁(yè)面,然后把靜態(tài)文件打包到了程序集,我們只要在.NET Core 應(yīng)用中,通過(guò)Nuget安裝即可。

新建一個(gè) .Net Core 的空的Web項(xiàng)目,支持 2.1 及以上版本

新建完成后,通過(guò)Nuget包分別安裝 HttpReports.Dashboard ,HttpReports.MySQL(或者是HttpReports.SqlServer, HttpReports.PostgreSQL)。

安裝完成之后,需要簡(jiǎn)單的配置一下,我們直接修改項(xiàng)目的 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
  }
 } 
}

現(xiàn)在參數(shù)有很多,不要擔(dān)心,我們現(xiàn)在只需要檢查數(shù)據(jù)庫(kù)的連接字符串,確保讓它可以成功的連接到你的數(shù)據(jù)庫(kù),其他的參數(shù),你可以在官方的文檔中找到它們,本文就不再多說(shuō)。

修改完 appsetting.json 后,我們接著修改 Dahboard 項(xiàng)目的 Startup.cs 文件:

public void ConfigureServices(IServiceCollection services)
 { 
	services.AddHttpReportsDashboard().AddMySqlStorage(); 
}

 
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{ 
	app.UseHttpReportsDashboard(); 
}

然后 Run,如果沒(méi)有問(wèn)題的話(huà),會(huì)跳轉(zhuǎn)到Dashboard的登陸頁(yè)面,默認(rèn)的賬號(hào):admin 密碼: 123456

現(xiàn)在我們有了 Dashboard,但是沒(méi)有數(shù)據(jù), 我們還需要在我們的.NET Core 應(yīng)用中安裝HttpReports,它負(fù)責(zé)采集和發(fā)送數(shù)據(jù)。

引用HttpReports

我新建了一個(gè) WebAPI 項(xiàng)目 UserService(用戶(hù)服務(wù)) ,然后我們通過(guò) Nuget 分別安裝 HttpReports , HttpReports.Transport.Http。

安裝完成后,同樣的,我們修改 appsettings.json,簡(jiǎn)單配置一下

{
 "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
 }
}

參數(shù)介紹:
Transport - CollectorAddress - 數(shù)據(jù)批量發(fā)送的地址,配置Dashboard 的項(xiàng)目地址即可
Server - 服務(wù)的地址,User服務(wù)我用了localhost:7000
Service - 服務(wù)名稱(chēng) User

修改完成后,我們接著修改 UserService 項(xiàng)目的 Startup.cs 文件

app.UseHttpReports();
這一行一定要放到 UseRouting() 和 UseEndpoints()方法 的上面。

public void ConfigureServices(IServiceCollection services)
{
  services.AddHttpReports().AddHttpTransport();
  services.AddControllers();
}

    
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  app.UseHttpReports();
  .... 

修改 UserService 項(xiàng)目的啟動(dòng)端口為7000,然后在解決方案中設(shè)置多項(xiàng)目啟動(dòng), 同時(shí)運(yùn)行 UserService 和 Dashboard項(xiàng)目。

public static IHostBuilder CreateHostBuilder(string[] args) =>
  Host.CreateDefaultBuilder(args)
  .ConfigureWebHostDefaults(webBuilder =>
        {
          webBuilder.UseStartup<Startup>().UseUrls("http://localhost:7000");
        });

我們多請(qǐng)求幾次 UserService 的接口,然后再回到 Dashboard的頁(yè)面,選擇一下時(shí)間,現(xiàn)在已經(jīng)可以看到數(shù)據(jù)了!

到目前為止,我們已經(jīng)在.NET Core 的程序中簡(jiǎn)單的使用了HttpReports,還有一些其他的功能,你可以在官方文檔中更詳細(xì)的介紹。

語(yǔ)雀:https://www.yuque.com/yuque-edenn/kb/gpgk0c5lg4fzvy85?singleDoc#

總結(jié)

在中小的項(xiàng)目中,你可以使用 HttpReports監(jiān)控你的 .NET Core程序,這很簡(jiǎn)單, 并且它是開(kāi)源的。

另外 HttpReports 也有一些其他的問(wèn)題,比如,難以應(yīng)對(duì)海量數(shù)據(jù),沒(méi)有完全按照 OpenTrace 規(guī)范,這些和項(xiàng)目早期的設(shè)計(jì)有很大的關(guān)系,我也愿意接受大家的批評(píng)和意見(jiàn),開(kāi)源不能只是崇高的理想主義,社區(qū)需要各懷鬼胎的求同存異。

但是沒(méi)有關(guān)系,現(xiàn)在有 OpenTelemetry,它兼容了OpenTracing和OpenCensus, 目前 1.0 版本也才發(fā)布了一個(gè)月左右,未來(lái)它會(huì)有更多的應(yīng)用場(chǎng)景。

所以,我在最近啟動(dòng)了一個(gè)新項(xiàng)目 Furtuna,是按照 OpenTelemetry 規(guī)范去設(shè)計(jì),你完全可以在 java, dotnet,php, go等語(yǔ)言中使用它,當(dāng)然目前還只是在開(kāi)發(fā)階段。

關(guān)于這個(gè)名字,F(xiàn)urtuna 是羅馬神話(huà)最古老的女神之一,能夠帶來(lái)幸福和機(jī)遇,寓意也很簡(jiǎn)單,守護(hù)我們的程序,讓它變的更好!

到此這篇關(guān)于使用 HttpReports 監(jiān)控 .NET Core 應(yīng)用程序的方法的文章就介紹到這了,更多相關(guān)HttpReports 監(jiān)控 .NET Core 應(yīng)用程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論