专栏首页DotNet程序园使用HttpReports快速搭建API分析平台

使用HttpReports快速搭建API分析平台

HttpReports

简单介绍

HttpReports 是 .Net Core下的一个Web组件,适用于 WebAPI 项目和 API 网关项目,通过中间件的形式集成到您的项目中, 通过HttpReports,可以让开发人员快速的搭建出一个 API 性能分析的基础报表网站。

主要包含 HttpReports 中间件 和 HttpReports.Web 报表项目:

HttpReports: https://github.com/SpringLeee/HttpReports

HttpReports.Web: https://github.com/SpringLeee/HttpReportsWeb

如何使用

1.运行 HttpReports.Web

在github下载 HttpReports.Web 项目,项目地址:https://github.com/SpringLeee/HttpReportsWeb, Web项目是.Net Core MVC 项目,使用三层实现。

下载完成后,在VS中打开,然后还原NuGet程序包,完成后首先 appsettings.json

appsettings.json

{
  "ConnectionStrings": {
    "HttpReports": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;"
  },
  "HttpReportsConfig": {
    "DBType": "SqlServer",
    "UserName": "admin",
    "Password": "123456"
  }
}

主要参数:

  • HttpReports:配置一个可用的连接字符串;
  • DBType:数据库类型,支持SqlServer和MySql;
  • UserName: Web项目的登录名;
  • Password: Web项目的登录密码;

假设我们使用的是SqlServer 数据库,需要先配置ConnectionStrings,然后手动创建数据库 HttpReports(Web项目会根据数据库自动创建表,并且在第一次运行的时候Mock一些数据 ),我们直接F5运行项目, 没有问题的话,会直接跳到登录页面,输入用户名密码 admin 123456,登录后,应该可以看到下面的页面

现在可以看到项目有 auth,payment,sms 三个服务节点,服务节点的定义如下:

请求地址

服务节点

说明

https://www.abc.com/auth/api/user/login

auth

https://www.abc.com/log/api/user/login

log

https://www.abc.com/api/user/login

default

如果没有前缀的话,就是default节点

如果你的项目是单个WebAPI项目,那么服务节点只有一个 default,如果你的项目是 GateWay 网关项目,那么Web项目就可以读取到多个服务节点,比如 auth 认证,payment支付等。

2.在API项目中使用

首先要删除 Web 项目的Mock数据,打开数据库 HttpReports,打开表 RequestInfo,清空数据,执行Sql

  Delete * From [HttpReports].[dbo].[RequestInfo]
配置数据库连接字符串

HttpReports 适用单个API项目和网关项目,这里使用 Ocelot网关项目为例.

我们打开appsetting.json, 配置数据库连接字符串,需要和Web项目一致

Nuget引用HttpReports

安装nuget包 HttpReports ,打开StartUp

在ConfigureServices 方法下添加:

services.AddHttpReportsMiddlewire();

如果是MySql数据库,则添加: csharp services.AddHttpReportsMiddlewire(options =>{ options.DBType = DBType.MySql; });

加入到 Configure 方法 ,需要放在 app.UseMVC() 或者 app.UseOcelot().Wait() 的前面,要不然不生效

app.UseHttpReportsMiddlewire();

ConnectionStrings 配置的连接字符串和数据库类型要一致,全部完成了以后,我们就可以使用 Web 项目了。

项目环境基本要求

WebAPI或者网关项目支持的.Net Core 版本 2.2, 3.0, 3.1;

HttpReports.Web 的core版本为 2.2

性能事项

HttpReports 中间件是异步操作,所以对api接口请求的时间可以忽略,但是由于实质使用的是数据库存储,所以要注意直接请求到数据库的压力。

下面是用PostMan做的一个简单测试:

WebAPI内的方法:

        public string Sql1()
        {
            SqlConnection con = new SqlConnection(
                "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HyBasicData;");

            var list1 =  con.Query(" select * from [HyBasicData].[dbo].[Customers] ");

            var list2 = con.Query(" select * from [HyBasicData].[dbo].[Customers] ");

            var list3 = con.Query(" select * from [HyBasicData].[dbo].[Customers] ");

            return list1.Count().ToString();
        }

PostMan分别对添加中间件和不添加中间件的 API请求 1000次,每300ms请求一次

说明

请求次数

平均响应时间

原生API

1000

32.535

使用中间件

1000

32.899

总结

HttpReports 的实现原理并不复杂,如果你想给你的 WebAPI项目,快速的添加一套分析系统 ,那么使用HttpReports 是一个不错的选择

本文分享自微信公众号 - DotNet程序园(dotnetblog),作者:SpringLeee

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Asp.Net Core IdentityServer4 管理面板集成

    IdentityServer4(以下简称 Id4) 是 Asp.Net Core 中一个非常流行的 OpenId Connect 和 OAuth ...

    梁规晓
  • 【翻译】.NET Core3.1发布

    我们很高兴宣布.NET Core 3.1的发布。实际上,这只是对我们两个多月前发布的.NET Core 3.0的一小部分修复和完善。最重要的是.NET Core...

    梁规晓
  • FreeSql 新查询功能介绍

    FreeSql 是一个功能强大的 NETStandard 库,用于对象关系映射程序(O/RM),提供了 CodeFirst/DbFirst/CURD/表达式函数...

    梁规晓
  • HTML5 技术在风电、光伏等新能源领域的应用

    HT_hightopo
  • HTML5 技术在风电、光伏等新能源领域的应用

    随着新一轮工业革命兴起,应对气候变化日益成为全球共识,能源技术正在成为引领能源产业变革、实现创新驱动发展的源动力。从全球到中国,以风能、光伏发电为代表的新能源产...

    HT for Web
  • REST 入门介绍

    dudu的 HttpClient + ASP.NET Web API, WCF之外的另一个选择 讨论的人很多,说明RESTful API也开始在.NET 社区中...

    张善友
  • centos 7 yum 安装mongodb3.6(卸载)

    yum下载安装好mongodb3.6之后,切记把mongodb-org-3.6.repo文件删掉或重命名,否则yum之后下载其他东西都会失败,除非你机器能访问国...

    拓荒者
  • 基于Vue.js实现的项目管理系统

    建立每年每月的工作项目,所有的工作最后都是对应到每位成员的个人项目,既可以是团队多人的项目形成的个人项目、也可以是完全纯属于自己的个人项目。

    程序源代码
  • 最新全球计算机科学排名:清华力压CMU占据人工智能第一!北大排第四

    新智元
  • Transformers 研究指南

    本文讲述Transformers的最新研究进展,由数据科学家 Derrick Mwiti写作。原文标题:Research Guide for Transform...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券