简介

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

github:https://github.com/dotnetcore/HttpReports

我也很荣幸在.NET Conf 2020 大会上, 做了简单的分享,开源不易,感兴趣的同学欢迎Star,支持一下...

在线预览:http://apm.nonop.cn/
账号: admin 密码 123456

项目结构

用户访问了我们的三个程序,每个程序都安装了HttpReports,它负责采集一些程序的数据和指标,然后通过Http的方式发送到Collector,简单处理后,会录入到不同的数据库中,同时,HttpReports.UI 负责把这些数据多维度的展示出来。

快速开始

接下来,我会构建监控的 Dashboard,然后在我们的.NET Core 程序中安装HttpReports来收集数据,最后展示到UI上,让我们看看这有多简单!

首先,需要初始化数据库,来存储收集的数据,这里我使用的是MySql数据库(或者是SqlServer,PostgreSQL), 我手动创建了一个数据库 HttpReports, 记住这个地址,后边会用到。

引用 HttpReports.Dashboard

首先,我们需要构建 Dashboard 来接收,处理和展示数据,Dashboard 使用了 Vue + Antv + ElementUI 构建了页面,然后把静态文件打包到了程序集,我们只要在.NET Core 应用中,通过Nuget安装即可。

新建一个 .Net Core 的空的Web项目,支持 2.1 及以上版本

新建完成后,通过Nuget包分别安装 HttpReports.Dashboard ,HttpReports.MySQL(或者是HttpReports.SqlServerHttpReports.PostgreSQL)。

安装完成之后,需要简单的配置一下,我们直接修改项目的 appsetting.json 文件

{"HttpReportsDashboard": { "ExpireDay": 3,"Storage": {"ConnectionString": "DataBase=HttpReports;Data Source=localhost;User Id=root;Password=123456;", "DeferSecond": 3,"DeferThreshold": 10},"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}}
}

现在参数有很多,不要担心,我们现在只需要检查数据库的连接字符串,确保让它可以成功的连接到你的数据库,其他的参数,你可以在官方的文档中找到它们,本文就不再多说。

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

public void ConfigureServices(IServiceCollection services){ services.AddHttpReportsDashboard().AddMySqlStorage();
}public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{ app.UseHttpReportsDashboard();
}

然后 Run,如果没有问题的话,会跳转到Dashboard的登陆页面,默认的账号:admin 密码: 123456

现在我们有了 Dashboard,但是没有数据, 我们还需要在我们的.NET Core 应用中安装HttpReports,它负责采集和发送数据。

引用HttpReports

我新建了一个 WebAPI 项目 UserService(用户服务) ,然后我们通过 Nuget 分别安装 HttpReports , HttpReports.Transport.Http

安装完成后,同样的,我们修改 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 的项目地址即可
Server - 服务的地址,User服务我用了localhost:7000 Service - 服务名称 User

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

app.UseHttpReports();
这一行一定要放到 UseRouting() 和 UseEndpoints()方法 的上面。

修改 UserService 项目的启动端口为7000,然后在解决方案中设置多项目启动, 同时运行 UserService 和 Dashboard项目。

我们多请求几次 UserService 的接口,然后再回到 Dashboard的页面,选择一下时间,现在已经可以看到数据了!

到目前为止,我们已经在.NET Core 的程序中简单的使用了HttpReports,还有一些其他的功能,你可以在官方文档中更详细的介绍。

语雀 - https://www.yuque.com/httpreports/docs/uyaiil[1]

总结

在中小的项目中,你可以使用 HttpReports监控你的 .NET Core程序,这很简单, 并且它是开源的。

另外 HttpReports 也有一些其他的问题,比如,难以应对海量数据,没有完全按照 OpenTrace 规范,这些和项目早期的设计有很大的关系。

但是没有关系,现在有 OpenTelemetry,它兼容了OpenTracing和OpenCensus, 目前 1.0 版本也才发布了一个月左右,未来它会有更多的应用场景。

所以,我在最近启动了一个新项目 Furtuna,是按照 OpenTelemetry 规范去设计,你完全可以在 java, dotnet,php, go等语言中使用它,当然目前还只是在开发阶段。

关于这个名字,Furtuna 是罗马神话最古老的女神之一,能够带来幸福和机遇,寓意也很简单,保护我们的程序,让它变的更好。

如何使用 HttpReports 监控 .NET Core 应用程序相关推荐

  1. 微服务统计,分析,图表,监控, 分布式追踪一体化的 HttpReports 在 .Net Core 的应用...

    前言介绍 HttpReports 是针对.Net Core 开发的轻量级APM系统,基于MIT开源协议, 使用HttpReports可以快速搭建.Net Core环境下统计,分析,图表,监控,分布式追 ...

  2. 使用Azure Application Insignhts监控ASP.NET Core应用程序

    Application Insignhts是微软开发的一套监控程序.他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查 ...

  3. 开源APM系统 HttpReports 在 .Net Core的应用

    作者:SpringLeee 源文:https://www.cnblogs.com/myshowtime/p/12332508.html 前言 简单说明下,APM全称Application Perfor ...

  4. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三

    在上文ASP.NET Core应用程序容器化.持续集成与Kubernetes集群部署(二)中,我介绍了如何使用Azure DevOps为ASP.NET Core应用程序案例:tasklist搭建持续集 ...

  5. 在ASP.NET Core应用程序中使用分布式缓存

    本文要点 ASP.NET Core内置了分布式缓存接口. 分布式缓存的主要好处有性能.数据共享和稳定性. Couchbase服务器是一个内存优先的数据库,非常适合作为分布式缓存. NuGet程序包使得 ...

  6. netcore更新dll要停止_使 .NET Core 应用程序容器化

    在本教程中,你将了解如何使用 Docker 容器化 .NET Core 应用. 容器具有很多特性和优点,如具有不可变的基础结构.提供可移植的体系结构和实现可伸缩性. 此影像可用于为本地开发环境.私有云 ...

  7. 【实验手册】使用Visual Studio Code 开发.NET Core应用程序

    .NET Core with Visual Studio Code 目录 概述... 2 先决条件... 2 练习1: 安装和配置.NET Core以及Visual Studio Code 扩展... ...

  8. 运行Vue在ASP.NET Core应用程序并部署在IIS上

    前言 从.NET Core 1.0开始我们就将其应用到项目中,但是呢我对ASP.NET Core一些原理也还未开始研究,仅限于会用,不过园子中已有大量文章存在,借着有点空余时间,我们来讲讲如何利用AS ...

  9. 阿里云ARMS重磅推出小程序监控,助力小程序稳定运行

    2018年是小程序蓬勃发展的一年,各大公司如腾讯.阿里.百度.头条等都陆续推出了自己的小程序,小程序已成为一个未来必然的趋势.移动互联网的新风口.据数据统计,目前已上线的微信小程序已超过100万,支付 ...

最新文章

  1. iOS 9: UIStackView入门
  2. oracle的用户自定义异常
  3. Python 字典类型的使用
  4. java中int转成String位数不足前面补零
  5. Kafka 源码解析:Server 端的运行过程
  6. 【clickhouse】Too many parts . Merges are processing significantly slower than inserts
  7. “通配符的匹配很全面, 但无法找到元素 ‘utillist‘ 的声明”的问题
  8. 1.08 亿条投注信息遭泄露,Elasticsearch 是祸因?!
  9. 2D 转换之 scale
  10. python开发软件的实例-由Python编写的MySQL管理工具代码实例
  11. 计算机算法设计与分析第四版在线,计算机算法设计与分析(第4版) 王晓东习题解答计算机算法设计与分析(第4版) 王晓东习题解答.pdf...
  12. layui表头样式_Layui表格好看样式
  13. 摘:Windows系统内存计数器理解解析_备忘录_51Testing软件测试网...
  14. 自动生成Makefile的全过程详解2
  15. vb.net 拓展教程目录
  16. 讨厌的HR [转贴] --一篇颇有争议的文章
  17. python实验大纲_Python程序设计实验-教学大纲-段震
  18. 高薪诚聘中高级软件工程师
  19. 2021美赛D题思路
  20. 农业物联网的道路上,还有个联想的身影

热门文章

  1. Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)阅读笔记
  2. Vue 的路由实现 Hash模式 和 History模式
  3. iTOP-4412开发板实现3路ADC数模转换驱动例程
  4. saltstack(三) --- salt-httpapi
  5. 构建和实现单点登录解决方案(转载于IBMdeveloperWorks)
  6. Objective-C中的self和super
  7. Oracle中的USEREVN()
  8. 桌面程序explorer_备份Internet Explorer 7搜索提供程序列表
  9. Ubuntu Core 给物联网提供更多安全支持
  10. springboot配置允许跨域访问