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"
如下图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能