.net core WebAPI性能监控-MiniProfiler与Swagger集成
2024-09-04 00:23:15
------------恢复内容开始------------
安装Nuget
Install-Package MiniProfiler.AspNetCore.Mvc
Install-Package MiniProfiler.EntityFrameworkCore
MiniProfiler.EntityFrameworkCore 用来监控EF Core生成的SQL
配置
在startup.cs 中配置服务ConfigureServices
services.AddMiniProfiler(options => {
options.RouteBasePath = "/profiler";
}).AddEntityFramework();
激活中间件,启用MiniProfiler服务,放在UseEndpoints方法之前。
app.UseMiniProfiler();
配置Swagger页面
- 先下载自定义Swagger页面 https://github.com/xuke353/swaggerui/blob/master/index.html。
将该文件放到API层的根目录下,设置文件属性为【嵌入的资源】
- 在Startup.cs文件中,我们需要修改UseSwaggerUI中间件的配置
app.UseSwaggerUI(c =>
{
c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("AdmBoots.Api.index.html");
c.RoutePrefix = string.Empty;
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
注意:这里AdmBoots.Api是项目的命名空间名
当前这个时候还不能使用,我们还需要在 Swagger的index.html中进行配置,以便它能在 Swagger 中使用。
重点来了
我们首先需要获取用于显示MiniProfiler的html代码片段,随便写个控制器,使用MiniProfiler的API输出一下就可以了。
[HttpGet]
public IActionResult GetCounts() {
var html = MiniProfiler.Current.RenderIncludes(_accessor.HttpContext);
return Ok(html.Value);
}
------------恢复内容开始------------
安装Nuget
Install-Package MiniProfiler.AspNetCore.Mvc
Install-Package MiniProfiler.EntityFrameworkCore
MiniProfiler.EntityFrameworkCore 用来监控EF Core生成的SQL
配置
在startup.cs 中配置服务ConfigureServices
services.AddMiniProfiler(options => {
options.RouteBasePath = "/profiler";
}).AddEntityFramework();
激活中间件,启用MiniProfiler服务,放在UseEndpoints方法之前。
app.UseMiniProfiler();
配置Swagger页面
- 先下载自定义Swagger页面 https://github.com/xuke353/swaggerui/blob/master/index.html。
将该文件放到API层的根目录下,设置文件属性为【嵌入的资源】
2.在Startup.cs文件中,我们需要修改UseSwaggerUI中间件的配置
app.UseSwaggerUI(c =>
{
c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("AdmBoots.Api.index.html");
c.RoutePrefix = string.Empty;
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
注意:这里AdmBoots.Api是项目的命名空间名
当前这个时候还不能使用,我们还需要在 Swagger的index.html中进行配置,以便它能在 Swagger 中使用。
重点来了
我们首先需要获取用于显示MiniProfiler的html代码片段,随便写个控制器,使用MiniProfiler的API输出一下就可以了。
[HttpGet]
public IActionResult GetCounts() {
var html = MiniProfiler.Current.RenderIncludes(_accessor.HttpContext);
return Ok(html.Value);
}
注意事项
- 不要在网上随便找个MiniProfiler的HTML代码片段就拷贝到index.html中使用,这样是不会成功的,因为拷贝来的的版本号和我们所引用Nuget的版本号并不一致。
- MiniProfiler.Current.RenderIncludes(_accessor.HttpContext)中的_accessor.HttpContext是通过依赖注入IHttpContextAccessor接口获取的。IHttpContextAccessor需要在Startup.cs中进行注册。
依赖注入
最新文章
- Android实现文章+评论(MVP,RxJava,Dagger2,ButterKnife)
- Swift介绍
- 解剖SQLSERVER 第十二篇 OrcaMDF 行压缩支持(译)
- Oracle如何写出高效的SQL
- matlab求解二元一次方程组的解得表达式
- input框限制只能输入正整数,逻辑与和或运算
- js常用功能汇总
- HFSS 边界条件
- hdu4918 Query on the subtree
- android 通过AlarmManager实现守护进程
- ZJOI2008泡泡堂BNB
- Matlab画图常用的符号和颜色
- 解析nodejs微信开发-2获取ticket
- 解析带有命名空间问题web.xml
- UNIX网络编程——利用ARP和ICMP协议解释ping命令
- WebApi用JilFormatter处理客户端序列化的字符串加密,之后在服务端解析。
- Android实现两次点击返回键提示退出
- Flashcache基本使用及注意事项
- jackson中自定义处理序列化和反序列化
- (02) 任务(Jobs)和触发器(Triggers)
热门文章
- mysql 5.7添加server_audit 安全审计功能
- 仅一年工作经验成功跳槽字节跳动,腾讯并拿到字节的offer,全靠这份面经!
- ccpc2020长春站F题 Strange Memory
- 接上一篇:(四) 控制反转(IOC)/ 依赖注入(DI)
- Win搭建JAVA环境
- C语言讲义——链表完整代码
- Mybatis入门及第一个Mybatis程序
- VM15 Ubuntu18.04 安装c/c++
- Mysql主从同步机制
- IDEA社区版(Community)和付费版(UItimate)的区别