前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【BlogBook书】8、MiniProfiler:接口性能分析

【BlogBook书】8、MiniProfiler:接口性能分析

作者头像
老张的哲学
发布2024-02-22 15:48:38
1000
发布2024-02-22 15:48:38
举报
文章被收录于专栏:NetCore 从壹开始NetCore 从壹开始

框架集成MiniProfiler+Swagger来做接口的简单性能分析,和每次请求中相关的Sql执行情况报告;

一、相关的依赖注入配置

代码语言:javascript
复制
// 服务注册
builder.Services.AddMiniProfilerSetup();
// 中间件
app.UseMiniProfilerMiddleware();

相关参数设置

代码语言:javascript
复制
"Startup": {
  "MiniProfiler": {
    "Enabled": true //性能分析开启
  },
},

二、使用方式

目前框架中,已经做了一些封装,比如请求和Sql调用情况,所以开启后直接就能看到效果。

当时也可以自己在任意位置补充上自己想要输出的内容,比如在Controller中输出当前用户信息,或者是Service层中配置数据库连接信息等等,

用法就是:

可以分步输出每一步的数据内容

代码语言:javascript
复制
[HttpGet]
public async Task<MessageModel<PageModel<BlogArticle>>> Get(int id, int page = 1, string bcategory = "技术博文", string key = "")
{
    // 一些逻辑...

    using (MiniProfiler.Current.Step("获取成功后,开始处理最终数据"))
    {
        // 一些逻辑...
    }

    return SuccessPage(pageModelBlog);
}

也可以直接输出对应的时间线内容

代码语言:javascript
复制
MiniProfiler.Current.
CustomTiming($"ConnId:[{config.ConfigId}] SQL:",
 GetParas(p) + "【SQL语句】:" + sql);

也可以在全局异常中处理,显示在swagger中

代码语言:javascript
复制
  public void OnException(ExceptionContext context)
  {
      var json = new MessageModel<string>();

      json.msg = context.Exception.Message;//错误信息
      json.status = 500;//500异常 
    
      var res = new ContentResult();
      res.Content = JsonHelper.GetJSON<MessageModel<string>>(json);

      context.Result = res;

      MiniProfiler.Current.CustomTiming("Errors:", json.msg);


      //进行错误日志记录
      _loggerHelper.LogError(json.msg + WriteLog(json.msg, context.Exception));
      if (AppSettings.app(new string[] { "Middleware", "SignalRSendLog", "Enabled" }).ObjToBool())
      {
          _hubContext.Clients.All.SendAsync("ReceiveUpdate", LogLock.GetLogData()).Wait();
      }


  }

效果展示,在swagger中,点击某个接口请求,会在swagger左上角(位置可以配置)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NetCore 从壹开始 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档