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"

如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

circle后面是什么意思 python_Ape circle Python操作-第2-01章-列表操作,小猿圈,作业

# 写代码,有如下列表,按照要求实现每一个功能li [alex, eric, rain]# 计算列表长度并输出length len(li)print(f1-li的长度是:{length})# 列表中追加元素“seven”,并输出添加后的列表li.append(seven)print(2-追加元素后的li是…

python插入排序_python 插入排序,选择排序

插入排序: def insert_sort(lst): for i in range(1,len(lst)): xlst[i] #x是一个临时变量,表示当前轮到的数字 ji #临时变量 j ,为后续的排序提供方便 while j>0 and lst[j-1]>x: #当j 小于0,说明已经数字比较到了第一位,说…

【Vscode】调试DotNet Core代码

Visual Studio作为宇宙第一的IDE,开发调试.net core app,无一能出其右,我们还需要去了解Visual Studio Code吗?答案是肯定。杀鸡焉用牛刀:就一个hello world的Console App,还需要打开Visual Studio吗&#…

Visual Basic、C# 和 C++ 的数据类型比较(转)

类别类名说明Visual Basic 数据类型C# 数据类型C 托管扩展数据类型JScript 数据类型整数Byte8 位的无符号整数。BytebytecharByteDZX7¢&dot [url]www.cnntec.com[/url]…gT‚sSByte8 位的有符号整数。 不符合 CLS。DZX7¢&dot [url]www.cnntec.com[/url]…gT‚…

pandownload 卢本伟_PanDownload复活了!60MB/s!附下载地址

最近几天,听说PanDownload 复活了有人接盘了,重新制作上线推出了更加强劲的复活版!但是笔者去下载了一下,发现并不能使用于是经过百般搜寻,发现被人提供的已经是旧版了于是,我找到了最新版,9月2…

mysql 精度_mysql-笔记 精度

decimal数据类型是fixed-point类型,计算结算是准确的。numeric/dec/fixed / integerfloat/double数据类型是 floating-point类型,计算结果是大约的。float/double/double precision/realDecimal(M,D):M 最大精度位数 1到65D小数位数 0到30,不…

linux安装rz命令_Linux 安装dep安装包命令

rootlsy-ubuntu:~# dpkg -i sublime-text_build-3126_amd64.deb 正在选中未选择的软件包 sublime-text。(正在读取数据库 ... 系统当前共安装有 256092 个文件和目录。)正准备解包 sublime-text_build-3126_amd64.deb ...正在解包 sublime-text (3126) ...正在设置 sublime-tex…

Excel分列功能的妙用

我们用left函数可以将姓名中的姓和名分开了,说实话,这个方法比较笨,因为EXCEL中提供了分列功能。 我们可以看下面这个例子,原始数据中含有编号,而且随着行数的增加,编号位数也在增加,这时就不能…

IdentityServer4之Implicit和纯前端好像很配哦

前言上一篇Resource Owner Password Credentials模式虽然有用户参与,但对于非信任的第三方的来说,使用这种模式是有风险的,所以相对用的不多;这里接着说说implicit隐式模式,这种模式比较适合于纯前端客户端&#xff0c…

libaio.so.1 mysql_libaio.so.1()(64bit) is needed by MySQL-server

从官网下的mysql5.5的server,系统是centos 6.4x86_64,安装时一直报错:[rootdbserver opt]# rpm -ivh MySQL-server-5.5.31-2.el6.x86_64.rpmerror: Failed dependencies:libaio.so.1()(64bit) is needed by MySQL-server-5.5.31-2.el6.x86_64libaio.so.1…

docker 安装kafka_laradock 中如何安装 Laravel Dusk

laradock 中如何安装 Laravel Dusk?导语在本地安装 Laravel Dusk 一直失败,查了文档才发现在 laradock 中并不是只需要 composer require 就可以的,还有其他配置。下面记录一下。配置 laradock1.切换到 laradock 目录中,将 worksp…

.NET 中依赖注入组件 Autofac 的性能漫聊

Autofac 是一款超赞的 .NET IoC 容器 ,在众多性能测评中,它也是表现最优秀的一个。它管理类之间的依赖关系, 从而使 应用在规模及复杂性增长的情况下依然可以轻易地修改。它的实现方式是将常规的.net类当做 组件 处理。简单的性能测试在 LINQPad 中&…

SQLServer事务的隔离级别

事务的隔离级别SQL Server通过在锁资源上使用不同类型的锁来隔离事务。为了开发安全的事务,定义事务内容以及应在何种情况下回滚至关重要,定义如何以及在多长时间内在事务中保持锁定也同等重要。这由隔离级别决定。应用不同的隔离级别,SQL Se…

c语言 extern_Visual C++ 6.0环境中C语言extern 变量使用过程报错

extern 变量称为外部存储变量。extern声明了程序中将要用到但尚未定义的外部变量。本次错误的解决方法同样适用于外部函数。外部函数就是可以被其他源文件调用的函数,定义外部函数时使用extern进行修饰。首先,分别创建两个源文件“ex1.c”和“ex2.c”。其…

怎么删除mysql的所有文件内容_mysql删除全部数据库

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

盘点大厂的那些开源项目 - 华为

HarmonyOS鸿蒙系统(HarmonyOS),是第一款基于微内核的全场景分布式OS,是华为自主研发的操作系统。华为会率先部署在智慧屏、车载终端、穿戴等智能终端上,未来会有越来越多的智能设备使用开源的鸿蒙OS。鸿蒙 OS 底层由鸿…

SAP项目文档 清单 考核标准

SAP项目文档的考核标准项目启动阶段 项目计划及对计划的调整 建议: 1、 对项目进度进行分类,定义每个阶段的关键任务。 2、 对每个阶段应形成的文档进行说明,哪类文档由谁制作,由谁签核必须做出统一的规定。最好能提供每类文档的标…

详解C#break ,continue, return

C#编程语法中break ,continue, return这三个常用的关键字的学习对于我们编程开发是十分有用的,那么本文就向你介绍break ,continue, return具体的语法规范。C#编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用…

ubuntu mysql怎么备份_Ubuntu下MySQL备份与异地备份

下面是一则MySQL备份实例,在Ubuntu下测试通过。完成任务是本地备份。可用于服务器端。#! /bin/bashecho "backupmysql V1.0"###date stamp###datestamp$(date %Y-%m-%d)###path ###startdir/home/user/mysqlbackup###bakfile prefix###fileprefixsqlecho …

TC字符界面-菜单程序【原创】

TC字符界面-菜单程序【原创】2008/03/06 22:58/*本程序代码属本人原创&#xff0c;未经允许不得转载&#xff0c;谢谢合作作者&#xff1a;HungryAnt发布时间&#xff1a;2008-3-6*//*快捷键功能没有提供,因为程序有各自的快捷键*/#include<stdio.h>#include<conio.h&…