ASP.NET Core 查看應用狀態和統計


在日常開發中,我們需要關注 .NET 應用的資源使用情況,方便排查問題和擴容。

通過 Ajax 請求獲取統計信息,展示成圖表,如下圖:

CLRStats 插件,一個統計 .NET 應用資源使用情況的插件,包含:CPU 使用率、GC、線程情況,支持通過 Web 請求獲取狀態信息(可以自定義訪問路徑和身份驗證),數據將以 JSON 格式返回。

GitHub 地址:https://github.com/itsvse/CLRStats

  • 支持 .NET Framework >= 4.5
  • 支持 .NET Core >= 2.0

安裝

CLRStats 可以通過 NuGet 網站獲取,您可以使用如下命令進行安裝:

PM> Install-Package CLRStats

用法

倉庫 samples 文件夾包含 ASP.NET MVC 和 ASP.NET Core 的示例。

ASP.NET MVC

項目需要新建 OWIN 啟動文件,配置如下:

public class Startup
{
	public void Configuration(IAppBuilder app)
	{
		app.UseCLRStatsDashboard();
	}
}

配置完成后,啟用項目,通過訪問站點 /clr 路徑,可以獲取到如下信息:

{"Server":{"MachineName":"DESKTOP-ZH5FQFC","SystemDateTime":"2021/1/24 20:05:44"},"Application":{"CPU":{"UsagePercent":1.171875},"GC":{"Gen0CollectCount":0,"Gen1CollectCount":0,"Gen2CollectCount":0,"HeapMemory":60529392,"HeapMemoryFormat":"57 M","IsServerGC":true},"Thread":{"AvailableCompletionPortThreads":1000,"AvailableWorkerThreads":8190,"UsedCompletionPortThreads":0,"UsedWorkerThreads":1,"UsedThreadCount":39,"MaxCompletionPortThreads":1000,"MaxWorkerThreads":8191}}}

ASP.NET Core

此示例中,將自定義訪問路徑以及增加身份認證功能。

身份認證需要繼承 IDashboardAuthorizationFilter 類,實現其中的 Authorize 方法,代碼如下:

public class TokenVerification : IDashboardAuthorizationFilter
{
	public bool Authorize(HttpRequest request)
	{
		if (request.Headers.ContainsKey("Token") && request.Headers["Token"].Equals("test"))
		{
			return true;
		}
		return false;
	}
}

自定義訪問路徑和添加身份認證,在 Startup 類 Configure 方法中,添加如下配置:

app.UseCLRStatsDashboard("/custom-link", new DashboardOptions()
{
	Authorization = new IDashboardAuthorizationFilter[] { new TokenVerification() }
});

配置完成后,啟用項目,通過訪問站點 /custom-link 路徑,並且請求頭里面需要攜帶 Token 參數,值為:test,才能夠訪問成功。

使用 Windows 系統下面 curl 工具進行測試,命令如下:

curl "http://localhost:4409/custom-link" --header "Token: test"

如下圖:

CLRStats


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM