【中间件】.net Core中使用HttpReports进行接口统计,分析, 可视化, 监控,追踪等...

  HttpReports  基于.Net Core 开发的APM监控系统,使用MIT开源协议,主要功能包括,统计, 分析, 可视化, 监控,追踪等,适合在微服务环境中使用。

  官方地址:https://www.yuque.com/httpreports/docs/uyaiil

主要功能

     接口调用指标分析

     多服务节点数据聚合分析

     慢请求,错误请求分析

     接口调用日志查询 

     多类型预警监控

     HTTP,Grpc 调用分析 

     分布式追踪

     多数据库支持,集成方便

     程序性能监控

第一步打开VS新建.net项目我这里用的是.net core webapi 进行演示

第二步 使用Nuget安装MHttpReports.Dashboard包和HttpReports.SqlServer

25ea5b5fedfad5a1bd011bf6282c48bc.png

第三步配置appsetting.json

{"HttpReportsDashboard": {"ExpireDay": 3,"Storage": {"ConnectionString": "Server=10.1.30.252;Database=GEISDB;user id=sa;password=Mg2021;","DeferSecond": 10,"DeferThreshold": 100},"Check": {"Mode": "Self","Switch": true,"Endpoint": "","Range": "500,2000"},"Mail": {"Server": "smtp.163.com","Port": 465,"Account": "HttpReports@qq.com","Password": "*******","EnableSsL": true,"Switch": true}}
}

参数介绍:   

ExpireDay - 数据过期天数,默认3天,HttpReports 会自动清除过期的数据

Storage - 存储信息 

DeferSecond - 批量数据入库的秒数,建议值 5-60

DeferThreshold - 批量数据入库的数量,建议值100-1000

Mail - 邮箱信息,配置监控的话,可以发告警邮件

Check - 健康检查配置,具体看 健康检查 页面

第四步配置Startup

// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940public void ConfigureServices(IServiceCollection services){services.AddHttpReportsDashboard().AddSQLServerStorage();}// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.UseHttpReportsDashboard();}

  把Dashboard 程序启动起来,如果没有问题的话,会跳转到Dashboard的登陆页面

c4ba06028019a62d8dedf75aa933d414.png

默认账号:

admin 密码: 123456

现在Dashboard 可视化有了,但是没有数据,我们还需要 给服务端程序,添加 HttpReports 来收集信息。

第五步 我新建一个WebAPI 项目 UserService ,来充当用户服务,然后安装 HttpReports,HttpReports.Transport.Http  

b5fd485e3acf7b235c5324b301ca9cc2.png

第六步修改Services的Appsettings.json 简单配置一下

{"HttpReports": {"Transport": {"CollectorAddress": "http://localhost:5000/","DeferSecond": 10,"DeferThreshold": 100},"Server": "http://localhost:7000","Service": "User","Switch": true,"RequestFilter": [ "/api/health/*", "/HttpReports*" ],"WithRequest": true,"WithResponse": true,"WithCookie": true,"WithHeader": true}
}

参数介绍:   

Transport -   

CollectorAddress - 数据发送的地址,配置Dashboard 的项目地址即可

DeferSecond - 批量数据入库的秒数,建议值 5-60

DeferThreshold - 批量数据入库的数量,建议值100-300

Server - 服务的地址, 

Service - 服务的名称

Switch - 是否开启收集数据

RequestFilter - 数据过滤,用 * 来模糊匹配

WithRequest - 是否记录接口的入参

WithResponse - 是否记录接口的出参

WithCookie - 是否记录Cookie 信息

WithHeader - 是否记录请求Header信息

最后一步我们接着修改 UserService 项目的 Startup.cs 文件

 app.UseHttpReports();    这一行最好放到 Configure 方法 最上面

public void ConfigureServices(IServiceCollection services){services.AddHttpReports().AddHttpTransport();services.AddControllers();}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.UseHttpReports();if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints =>{endpoints.MapControllers();});}

刷新下 UserService 的接口,再回到Dashboard的页面上面,已经可以看到数据了

773f351d7cf85d0fa79cae09e1f795eb.png

总结

本篇博客描述了使用HttpReports进行接口统计,分析, 可视化, 监控,追踪等

如果觉得还不错,请给个关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【遥感数字图像处理】实验:遥感影像辐射纠正(大气纠正)完整操作图文教程(Erdas版)

一、实验平台:Erdas 9.1 二、实验数据:dmtm.img 三、实验内容:利用回归分析法校正影像 四、实验原理:大气散射只影响短波波段,长短波进行对比,找出影响短波的程辐射值,将其减去 五、实验目的:掌握回归分析法校正影像的方法及步骤,能熟练地对影像进行校正 六、实…

Android之开源视频压缩框架RxFFmpeg的commands设置

1 Android视频压缩框架 地址:https://github.com/microshow/RxFFmpeg 2 问题 用ffmpeg进行压缩的时候,我们需要采用ffmpeg命令压缩官网给的命令如下 String text = "ffmpeg -y -i /storage/emulated/0/1/input.mp4 -vf boxblur=25:5 -preset superfast /storage/emul…

Acitivty生命周期

为什么80%的码农都做不了架构师?>>> Acitivty 有七个生命周期: onCreate:当第一次调用一个Activity就会执行onCreate方法 onStart:当Activity处于可见状态的时候就会调用onStart方法 onResume:当Activity可…

listview嵌套gridview

1.首先要自定义一个继承gridview的类 public class MyGridView extends GridView {public boolean hasScrollBar true;public MyGridView(Context context) {super(context);}public MyGridView(Context context, AttributeSet attrs) {super(context, attrs);}Overrideprotec…

还不懂你现在学习的编程语言能做什么?还不懂如何进阶?过来看图

前言说七说八 本篇文章的配图标注、内容并不代表仅有;本篇仅以个人经验及当前大学(大专、本科)相关课程作对比,列出比较常规的语言发展走向及相关技术;再次重申,本图及本文所涉及的技术发展走向并不代表着…

IT新起之秀

辞职以后自己比较迷茫,不知道自己能干什么,09年毕业到现在虽然工作经验有7、8年,但是感觉自己什么都不会,除了自己能下车间别的好像也做不成,没有一技之长。我更像是一个经验用了7、8年而不是有7、8年的经验 在齐鲁人才…

【遥感数字图像处理】实验:遥感影像几何纠正完整操作流程(Erdas版)

☆☆☆ 几何纠正预备知识 ☆☆☆ 1、几何变形误差的影响因素 遥感器本身引起的畸变外部因素引起的畸变处理过程中引起的畸变2、需要做精纠正的情况 景与景之间作比较GIS建模之前监督分类时提取样本创建高精度比例尺的影像地图与矢量数据叠加源于不同比例尺的地图之间比较提取精…

openid 钉钉_钉钉开发入门,微应用识别用户身份,获取用户免登授权码code,获取用户userid,获取用户详细信息...

最近有个需求,在钉钉内,点击微应用,获取用户身份,根据获取到的用户身份去企业内部的用户中心做校验,校验通过,相关子系统直接登陆;就是在获取这个用户身份的时候,网上的资料七零八落的,找的人烦躁的很,所以自己记录一下;实现这个要求,有好几种方式,使用ISV方式相对来说比较简单…

趣味二维码生成

1背景介绍 最近在 Github 看到了一个有趣的项目 amazing-qr,它支持生成普通二维码,带图片的艺术二维码,动态二维码。项目是用 python 编写的,以命令行的方式运行生成,不太方便调用,因此,我…

学习进度博客十二

本周学习软件工程所花时间为:4小时 代码:200行 博客发表篇数:3 了解到的知识点:这周我们开始了第二次冲刺阶段 转载于:https://www.cnblogs.com/wulun/p/5610433.html

Android Studio提示No virtual method asBitmap()Lcom/bumptech/glide/RequestBuilder

1 问题 android studio导入别人项目的module,运行点击app,程序奔溃,错误日志如下 Process: com.example.chenyu, PID: 6302java.lang.NoSuchMethodError: No virtual method asBitmap()Lcom/bumptech/glide/RequestBuilder; in class Lcom/bumptech/glide/RequestM…

电脑开机后,就会自动运行chkdsk,我想取消chkdsk,怎么取消

每次开机都自动检查磁盘,检测通过后下次还是一样,NTFS/FAT32分区都有可能有这样的情况,即使重装系统,仍可能出现同样情况,但是硬盘可以通过Dell 随机带的检测程序解决方法:在命令行窗口中输入…

《零基础看得懂的C++入门教程 》——(1)第一个C++程序就让你知其所以然

一、学习目标 了解第一个C程序了解第一个C程序结构了解什么是注释了解什么是命名空间了解C语言的输出(如何在程序运行时显示内容)了解语句结束后需要使用什么符号表示结束 了解程序入口 目录 预备第一篇,使用软件介绍在这一篇,…

1、Locust压力测试环境搭建

环境准备:阿里云服务器一台、python2.7、pip Locust 介绍Locust 是一个开源负载测试工具。使用 Python 代码定义用户行为,也可以仿真百万个用户。 Locust 简单易用,分布式,用户负载测试工具。Locust 主要为网站或者其他系统进行负…

MicroStation V8i简体中文版完全补丁安装教程(附安装包下载)

MicroStation是一款非常不错的二维和三维设计软件,由奔特力(Bentley)工程软件系统有限公司开发的一款软件。在CAD设计上该软件是和AutoCAD是齐名的软件,其专用的文件格式是DGN,当然该软件还兼容AutoCAD的DWG/DXF等格式,该软件的应用已经非常广泛,在建筑、土木工程、交通…

交互式 .Net

1名词解析 1. 交互式交互式是指输入代码后可直接运行该代码,然后持续输入运行代码。2. 交互式 .Net.Net 是一种编译型语言,不像 python 这类的脚本型语言,可以边输入代码边运行结果。幸运的是,软微推出了 interactive 这个项…

Android Studio之编译t提示Invoke-customs are only supported starting with Android O (--min-api 26)

1 问题 编译别人的项目,错误提示如下 Invoke-customs are only supported starting with Android O (--min-api 26) 2 解决办法 在app的build.gradle的android节点下添加如下代码 android {compileSdkVersion 28defaultConfig {}buildTypes {}//需要添加如下代码…

mysql signed 长度_浅谈mysql字段长度设置

mysql 中最常用的数据类型是tinyint,smallint,int,bigint,char,varchar;char(n)和varchar(n)存储固定长度的字符数据,长度最大为254字节。使用 ‘n’字节的存储空间;有符号和无符号区别:有符号可以存储负值,无符号只能存储0和非负值数值;tinyint 占用1字节的存储空间…

R语言-异常数据处理2

在R中进行基于稳健马氏距离的异常检验 前言 我们研究的数据中经常包含着一些不同寻常的样本,这称之为异常值(Outlier)。这些异常值会极大的影响回归或分类的效果。异常值产生的原因有很多,其中可能是人为错误、数据测量误差,或者是实际确实存…

【遥感数字图像处理】实验:遥感影像增强方法大全处理看过来(Erdas版)

目录 1、空间增强(spatial enhancement) 1.1 卷积增强(convolution) 1.2 非定向边缘增强(non-directional edge)