牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用

admin 3周前 (09-06) 科技 40 1

前言先容

HttpReports 是针对.Net Core 开发的轻量级APM系统,基于MIT开源协议, 使用HttpReports可以快速搭建.Net Core环境下统计,剖析,图表,监控,分布式追踪一体化的站点, 顺应.Net Core WebAPI,MVC,Web项目, 通过引用Nuget构建Dashboard面板,上手简朴,适合在微服务架构中使用。

Github地址:https://github.com/SpringLeee/HttpReports

在线预览: https://moa.hengyinfs.com

账号: admin 密码 123456

开源不易,感兴趣的同砚迎接 Github Star 一波...

主要功效

  • 接口挪用指标剖析
  • 多服务节点数据聚合剖析
  • 慢请求,错误请求剖析
  • 接口挪用日志查询
  • 趋势数据剖析 (维度:分钟,小时,天)
  • 多类型预警监控
  • HTTP挪用剖析
  • Grpc挪用剖析
  • 分布式追踪
  • 多数据库支持,集成利便

数据库支持

数据库 Nuget包名称
SqlServer HttpReports.SqlServer
MySql HttpReports.MySQL
Oracle HttpReports.Oracle
PostgreSQL HttpReports.PostgreSQL

HttpReports Dashboard-UI

快速最先

Step1: 初始化数据库

HttpReports 需要手动建立数据库, 我这里使用 SqlServer 数据库为例,建立数据库 HttpReports, 固然数据库名称可以自由界说, 后边程序要和这个数据库名字对应。

Step2: 集成到WebAPI应用

打开VS开发工具,新建一个 WebAPI 应用,这里 .Net Core 版本只要是2.0 以上即可,我这里用的是3.1版本,建立完成后,Nuget 包引用 HttpReports

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第1张

引用乐成后,由于我使用的是SqlServer 数据库,我们再Nuget引用 HttpReports.SqlServer

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第2张

找到程序的 appsetting.json,修改为以下设置, 注重:这里Storage 设置的数据库名称要和新建的数据库名称一致

{
  "HttpReports": {
    "Storage": { 
      "ConnectionString": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;" 
    },
    "Node": "UserService"
  } 
} 

设置完成后,然后我们再修改 StartUp.cs 文件,修改为以下代码

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第3张

public void ConfigureServices(IServiceCollection services)
{
	 
	services.AddHttpReports().UseSQLServerStorage();

	services.AddControllers();
}

 
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
	 
	app.UseHttpReports();

	if (env.IsDevelopment())
	{
	app.UseDeveloperExceptionPage();
	}

	app.UseRouting();

	app.UseAuthorization();

	app.UseEndpoints(endpoints =>
	{
	endpoints.MapControllers();
	});
}

一切准备就绪后,我们启动 WebAPi,而且刷新几回页面,到这里为止,WebAPI的部门我们已经完成了

Step3: 集成可视化 Dashboard

使用VS新建一个 .Net Core MVC 应用, 新建完成后,通过Nuget包我们划分安装 HttpReports.DashboardHttpReports.SqlServer

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第4张

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第5张

引用完成后,修改Dahboard项目的 appsetting.json 文件, 注重数据库要一致

{
  "HttpReportsDashboard": {
    "Storage": { 
      "ConnectionString": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;" 
    } 
  }
}

修改完成后,我们接着修改 Dahboard 项目的 Startup.cs 文件

 public void ConfigureServices(IServiceCollection services)
 { 
	  services.AddHttpReportsDashboard().UseSQLServerStorage();

	  services.AddControllersWithViews();
}

 
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{ 
	app.UseHttpReportsDashboard(); 
	...
}

一切准备就绪后,我们启动Dashboard 项目,若是没有问题的话,会跳转到Dashboard的上岸页面
默认账号:admin 密码: 123456 , 上岸后可修改

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第6张

例子中我用的是SqlServer 数据库,其他的数据库也是类似的,我只建立了一个WebAPI,固然HttpRrports 也支持多个WebAPI,我们只要修改appsetting.json 的 Node,你可以设置 Node 为 UserService, OrderService... ,到这里一个最简朴集成 HttpReports 的例子已经完成了, 请恣意使用吧

Grpc 支持

微服务Grpc的盛行,我们也做了Grpc的适配,若是您的项目中使用Grpc通讯的话,需要在你的api项目中,Nuget包引用 HttpReports.Grpc,注重这里是api项目引用,不是Dashboard 项目引用

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第7张

修改startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddHttpReports().UseSQLServerStorage().UseGrpc(); 
   
    services.AddControllersWithViews();
}

预警监控

HttpReports.Dashboard 集成了预警监控功效,使用的话需要先设置 Smtp 邮箱,否则吸收不到预警邮件哦,

我们修改Dashboard项目的appsetting.json为下面即可

{
  "HttpReportsDashboard": {
    "Storage": { 
      "ConnectionString": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;" 
    }, 
    "Mail": {
      "Server": "smtp.qq.com",
      "Port": 465,  
      "Account": "",
      "Password": "",
      "EnableSsL": true  
    }
  }
}

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第8张

监控功效主要针对以下四项监控

  • 响应超时
  • 请求错误
  • IP异常
  • 请求量监控

简朴说明下,监控频率 选1小时,也就是1个小时 运行一次,然后填入预警的收件邮箱,多个邮箱用逗号离隔, aaa.qq.com,bbb.qq.com , 服务节点 可以选中单个和多个节点,默认的话,下边 4个监控都是关闭状态, 若是需要勾选启动即可,详细的话这里就不多说了.

预警支持 WebHook,设置后可以自动把预警信息推送到您界说的地址,推送方式为Post推送

{
 "Title":"...",
 "Content":"..."  
}


最后,贴上两个完整的设置文件供人人参考

WebAPI端

{
  "HttpReports": {
    "Storage": { 
      "ConnectionString": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;", 
      "EnableDefer": false,
      "DeferSecond": 20,
      "DeferThreshold": 3
    },
    "Node": "UserService",
    "Switch": true,
    "FilterStaticFiles": true
  }
}

参数说明:
EnableDefer 开启为异步入库,默认false
DeferSecond 异步入库的秒数
DeferThreshold 异步入库的条数
Node 服务节点名称
Switch 是否最先数据网络,默认true
FilterStaticFiles 网络数据是否过滤静态文件,默认true

Dashboard端

{
  "HttpReportsDashboard": {
    "Storage": { 
      "ConnectionString": "Max Pool Size = 512;server=.;uid=sa;pwd=123456;database=HttpReports;" 
    },
    "UseHome": true,
    "ExpireDay":7,
    "Mail": {
      "Server": "smtp.qq.com",
      "Port": 465, 
      "Account": "",
      "Password": "",
      "EnableSsL": true  
    }
  }
}

参数说明:
UseHome Dashboard使用主页路由,默以为true,false 的话,路由为 localhost/Dashboard
ExpireDay 网络数据的有效期,默认30天

总结

HttpReports 是 .Net Core环境下开源的APM系统,异常适合微服务环境中使用,若是是中小型项目的话,那么使用 HttpReports 是一个不错的选择, 开源不易,若是能辅助到您的话,还请希望给个Star 支持下, 谢谢

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

MIT协议

交流反馈

若是您在项目中使用了HttpReports,或者感兴趣的可以加入QQ群 897216102, 人人一起相同,有更新也会第一时间通知,也可以添加我的微信,希望可以辅助到您

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第9张

捐赠

如您以为 HttpReports 对您有辅助,可以请作者媳妇儿喝一杯柠檬茶~

牡丹江吧:微服务统计,剖析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用 第10张

,

Sunbet

Sunbet www.1888ss.com是24小时不间断资讯平台,能够迅速深度追踪社会主流新闻,持久关注追踪热点话题,联播各界新闻资讯,能够全面把握并精准推送给用户社会所关注的要点,为您提供最全最新的热点信息,更新内容短小精悍的政、商等社会各界头条新闻,让您在短时间内足不出户就能够迅速掌握新闻脉络,获得您关注新闻的最新进展。

网友评论

  • (*)

最新评论

  • 联博API 2020-09-06 00:04:50 回复

    AllbetAPP下载欢迎进入AllbetAPP下载(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。不失所望

    1

文章归档

站点信息

  • 文章总数:794
  • 页面总数:0
  • 分类总数:8
  • 标签总数:1349
  • 评论总数:363
  • 浏览总数:32707