性能分析工具MiniProfiler

作者:返回主页 在西天取经的路上……

原文地址:https://www.cnblogs.com/sylone/p/11024386.html

1

介绍

MiniProfiler是一款Stack Overflow团队针对.NETCore,.NET, Ruby, Go and Node.js的性能分析的轻量级程序。可以对一个页面本身,及该页面通过直接引用、Ajax、Iframe形式访问的其它页面进行监控,监控内容包括数据库内容,并可以显示数据库访问的SQL(支持EFcore,dapper等 )。并且以很友好的方式展现在页面上。

2

安装

我们可以使用Nuget来下载这个包。

3

配置Startup.cs

MiniProfiler配置起来很简单,只需要以下几步

在方法中添加MiniProfiler服务

这里是配置了MiniProfiler的路由基础路径,默认的路径是/mini-profiler-resources

按照当前配置,你可以使用"/profiler/results"来访问分析报告

激活中间件,启用MiniProfiler服务

配置需要监控分析的代码

代码解释:

方法定义了分析的步骤,这个方法可以接受一个类型的参数,它会显示在最终的报告中

方法是更细粒度的对报告内容进行分类,以上代码中定义了2种分类,一种是SQL, 一种是Http

上述程序的功能:模拟从数据库拉取2个网站的Url, 并使用来分别请求网站的Url

4

查看效果

下面我们启动项目, 项目默认打开/api/values

然后我们来访问以下/profiler/results, 就会出现如下页面

如上图所示,我们可以很清楚的看到代码中每一部分的耗时,由于我们添加了2种分类SQL和Http,所以列表中会对2种分类进行汇总。

重点:当前页面只会显示最近的一次请求

从当前报告中可以得到以下结论

当前请求总响应时间 1723.6ms

SQL语句查询耗时517.ms

2次Http请求共耗时868.3ms, 其中访问百度耗时424.6ms, 访问新浪耗时443.7ms

5

如何让MiniProfiler与Swagger集成

这里我们就不再讲如何在ASP.NET Core中整合Swagger。

MiniProfiler和Swagger是可以集成在一起的,为了完成这个功能,我们需要进行以下几步

6

下载Swagger自定义页面

默认的index.html页面可以从如下链接下载

https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/master/src/Swashbuckle.AspNetCore.SwaggerUI/index.html

下载之后将这个文件放置到项目根目录下。

接下来我们需要在这个文件的头部加入如下脚本代码:

最后我们需要配置这个index.html文件的Bulid Action为Embedded resource

安装自定义页面

在文件中,我们需要修改中间件的配置,这里我们需要添加一个配置。

注意:这里是项目的命名空间名

7

最终效果

重新启动项目,Swagger文档页面的左上角就出现了一个小的面板,当模拟请求一个连接之后,它就会显示出当前请求的分析数据,看起来是不是很酷炫。

8

总结

本篇博客描述了如何使用MiniProfiler来监控分析你的Api。MiniProfiler除了提供网页显示报告,还支持将报告结果存储在数据库中

本篇源代码:https://github.com/lamondlu/Sample_MiniProfiler

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190816A05W1Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券