Code Monkey home page Code Monkey logo

httpreports's Introduction

Member project of .NET Core Community GitHub license Nuget

HttpReports APM

Introduce

HttpReports is an APM (application performance monitor) system for Net Core. Based on MIT open source protocol, The main functions include statistics, analysis, visualization, monitoring, tracking, etc,It is very suitable for use in microservices.

Githubhttps://github.com/dotnetcore/HttpReports
Docs zh-cn: https://www.yuque.com/httpreports/docs
en-us: https://www.yuque.com/httpreports/docs?language=en-us

The online previewhttp://apm.nonop.cn/

account: admin password **123456 **

MIT

Main features

  • Service, instance, endpoint metrics analysis
  • Slow request, error request analysis
  • Service call parameter query
  • Multi dimensional early warning and monitoring
  • HTTP, grpc call analysis
  • Service topology map analysis
  • Distributed tracing
  • Multi database support, easy integration

Database support

Database Nuget
SqlServer HttpReports.SqlServer
MySql HttpReports.MySQL
PostgreSQL HttpReports.PostgreSQL

Conclusion

HttpReports is an open source APM system in the.net Core environment, which is very suitable for microservice environment. If it is a small or medium-sized project, then HttpReports is a good choice, open source is not easy, if it can help you, please give us a star, thank you 😆

Communication feedback

If you use HttpReports in the project, or if you are interested, you can join the QQ group, News about HttpReports are published in QQ group. If You have any questions you can also add me on WeChat.

Donation

This project is an MIT-licensed open source project. In order to achieve better and sustainable development of the project, we expect to gain more backers. We will use the proceeds for community operations and promotion.

Donation details:https://www.yuque.com/httpreports/docs/pl212y

httpreports's People

Contributors

cuiliang avatar dependabot[bot] avatar fawdlstty avatar heartfiretree avatar honorduan avatar mzorec avatar ren8179 avatar springleee avatar stratosblue avatar weihanli avatar xiaoyu5062 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

httpreports's Issues

数据落库建议

简单看了下数据存储的源代码,数据搜集完成后,直接在当前项目进行存储。如果请求量多的话,存在与本地应用抢占资源的情况。建议客户端仅进行数据采集,通过rpc服务发送到专门服务器处理。可以参考SkyWalking

【提议】接口请求数据合并

数据按照天为单位自动统计进新的表,比如字符段包括(年月日、接口、24小时分别请求数,平均耗时毫秒)。示例数据:

2020-07-17        /        0,0,0,0,0,3,7,13,36,754,854,345,764,543,234,735,24,652,346,398,632,85,23,7        32
2020-07-17        /hello   0,0,0,0,0,3,7,13,36,754,854,345,764,543,234,735,24,652,346,398,632,85,23,7        167

当天有多少个接口,那么当天就会有多少条数据
可分析角度(每一条分别包括对单一接口的分析与对所有接口的分析):

  1. 接口耗时排行,有助于看出哪些接口性能低,需要重点优化
  2. 按照24小时活跃度对用户人群的使用时间段做分析(比如最近一个月,用户活跃时间段)
  3. 按照半年为单位展示用户量变化情况(最近半年登录接口(用户量)上涨曲线)
  4. 请求数*平均耗时,这样的图表,也就是服务器端对某个接口的总耗时,有助于分析出当前需要重点关注哪些接口

不合并的坏处:

  1. 浪费空间
  2. 较大量的数据几乎没法做趋势分析

图表中的请求状态码移除正常的

我个人认为,图表中展示的数据,是告诉运维人员,哪些是有问题的。不是全部的。
所有不要显示正常的状态码数据。几乎99.9999%都是正常。显示出来就没有意义了。

是否影响并发性能

其实,这种东西我一直很好奇,是否会影响系统本身的并发性能。所以,我平时连日志都不敢记,只使用IIS本身可怜的日志,或者在k8s上的时候,用nginx中可怜的日志。这个有大牛科普一下不?

【提议】添加时区功能

建议后台数据库中保存UTC时间,查询时可以根据Dashboard客户端时区或者用户指定时区进行筛选查询。

现在如果服务器与Dashboard浏览器时区不同就很难受,看不到实时的报表。

关于HttpReports.Dashboard的View和wwwroot

HttpReports是优秀的项目,很适合我们生产项目的实际需求。
说明:昨天,我们开启了HttpReports试用计划。引入了HttpReports.Dashboard后,项目内新增了View和wwwroot文件夹,仔细看后,这些是Dashboard的前端文件,与DotNetCore.CAP.Dashboard等很相似,但他们把前端资源文件内嵌入程序集,引入后,不会在项目内新增文件夹等,对于使用者来说,看不到Dashboard生成的View和wwwroot文件夹是有好的,也符合后端依赖引入规范。事实上,引入HttpReports.Dashboard的位置不一定是Web,.csproj中,更多时候是在Application.csproj等文件中。除了Dashboard外,其他都挺好,但也因为Dashboard在项目内新增文件不符合依赖引入规范,故而没能通过试用,当然,这是一个一分钟的优化,试用报告已写命作者会在下个版本中优化,期待作者发布下个版本,届时,我们将再次进行HttpReports试用,使用通过后,逐步推广至各生产项目,谢谢。

图表中的请求时间调整

这个请求时间,最好是允许设置。比如我只关心请求时间大于300ms的请求。低于300ms的请求都不需要显示出来。

请求数据保存失败

fail: HttpReports.Storage.MySql.MySqlStorage[0]
Method: AddRequestInfoAsync Message: 请求数据保存失败
MySql.Data.MySqlClient.MySqlException (0x80004005): Data too long for column 'Route' at row 1
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at System.Data.Common.DbCommand.ExecuteNonQueryAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at Dapper.SqlMapper.ExecuteImplAsync(IDbConnection cnn, CommandDefinition command, Object param) in C:\projects\dapper\Dapper\SqlMapper.Async.cs:line 678
at HttpReports.Storage.MySql.MySqlStorage.<>c__DisplayClass14_0.<b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at HttpReports.Storage.MySql.MySqlStorage.LoggingSqlOperation(Func`2 func, String message, String method)

statecode 无法记录500 这类的错误

可以加上 catch (Exception ex)

try
{
context.Response.Body = responseMemoryStream;

            await _next(context);           
  
        }
        catch (Exception ex)
        {
            requestInfo.Error = ex.ToString();
            requestInfo.StatusCode = 500;     
            throw ex;
        }
        finally
        {

日志数据库的连接出问题,会导致整个服务不可用

日志数据库服务器和网站不在同一个服务器,
日志数据库服务器关机后,网站就崩掉了。
返回错误:
image
紧急修改代码屏蔽掉app.UseHttpReports(); 才正常。

image

希望在日志数据库保存出错的情况也能下不影响网站本身的正常使用。

关于减少数据库空间占用的建议

建议增加选项:

  • 只保存异常请求的详细信息(根据状态码、请求处理时间判断是否异常请求)。
  • 正常请求仅保存基础信息(或者可选不保存只计数)。
  • 可选保存请求的哪些信息。

项目中包含CAP仪表盘的时候会产生无法访问流

CAP版本:2.6.0

System.ObjectDisposedException: Cannot access a closed Stream.
   at System.IO.MemoryStream.Seek(Int64 offset, SeekOrigin loc)
   at HttpReports.DefaultHttpReportsMiddleware.GetResponseBodyAsync(HttpContext context)
   at HttpReports.DefaultHttpReportsMiddleware.InvokeHttpAsync(HttpContext context)
   at HttpReports.DefaultHttpReportsMiddleware.InvokeAsync(HttpContext context)
   at DotNetCore.CAP.DashboardMiddleware.Invoke(HttpContext context) in C:\projects\cap\src\DotNetCore.CAP\Dashboard\CAP.DashboardMiddleware.cs:line 35
   at Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)

建议 requestinfo 入库时 加上 web服务器 运行进程相关的信息

仅供参考
https://github.com/Microshaoft/Microshaoft.Common.Utilities.Net/blob/244736000bd69d2171ef51180b29fa8910c4b50e/Samples/MsSqlCodeDiffVersioning/MsSqlCodeDiffVersioning.Shared/Startup.01.ConfigureServices.cs#L325

可以事后分析 如果个别机器无记录,说明服务器群集中存在故障节点
进程信息可以通过分析 id或starttime变化发现曾经崩溃重启,
甚至还可以包括进程内存cpu占用 workingset,cpu

另外异步入库策略,是否用队列(task.run)更好,并发入,单线程(永久存在)出,
凑齐n条或等够秒秒,二者满足任意一个条件批量入库,只要有数据>n就不闲着入库,
同一时刻每台服务器只有一个数据库连接做此事
https://github.com/Microshaoft/Microshaoft.Common.Utilities.Net/blob/master/SharedSources/SingleThreadAsyncDequeueProcessor/CoreStandard/SingleThreadAsyncDequeueProcessorSlim.cs

【提议】几个小的建议

  1. 性能分析中报表去掉粒度选项,标签根据时间范围来,跨天的在0时0分显示月日,不跨天的按时分显示
  2. 性能分析页面新增机器总cpu使用率、总内存使用率、当前总磁盘空间使用量/总量
  3. 兼容WTM的方式,也就是在第一次请求时,待WTM建完库后再建表
  4. 通过url参数隐藏菜单与标题栏,便于嵌入其他管理系统中

添加预警监控报错

fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1]
An unhandled exception has occurred while executing the request.
System.NullReferenceException: Object reference not set to an instance of an object.
at HttpReports.Dashboard.Services.MonitorService.VaildMonitorJob(MonitorJobRequest request)
at HttpReports.Dashboard.Controllers.HttpReportsDataController.EditMonitor(MonitorJobRequest request)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)

没填写推送地址 保存的时候报错 , 话说推送地址什么?

连接MySQL报错

image

SocketException: 请求的名称有效,但是找不到请求的类型的数据。
麻烦帮忙看下,是否是mysql连接字符串你们有特别处理吗?

多数据库支持等建议

这是个很实用的项目,感谢作者以MIT协议开源此项目,在此留下以下几条建议。
建议:1、新增 HttpReports.InMemory,以提供最基础的内存数据库支持;2、支持传入数据库连接字符串,自动创建相关的数据表(如果表不存在);3、非关系型数据库在数据存储上有强大的优势,可新增对主流非关系型数据库的支持,例如: HttpReports.Mongodb等。

Docker环境部署获取远程IP为容器网关地址

有用到nginx转发。
后经过测试,在nginx配置中添加"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;"
使用Request.Headers["X-Forwarded-For"].FirstOrDefault()可以获取真实地址,期待添加兼容

数据库建表建议

当跟生产项目在一个库中时,sysuser 会出现重复冲突,建议增加前缀配置功能

咨询

感谢作者以MIT协议开源此项目,
咨询下,该项目只适用于WebApi项目吗?对传统MVC项目不支持吗?

咨询2个问题

您好,我看了线的上演示版。有两个疑问

  1. 我看到很多请求是post方式的,点击 "详情" ,请求内容都是空的。
  2. 点击 “追踪”,都只显示了一条路径,请问能追踪链路吗。

Instance 一直是localhost:80

Instance 一直是localhost:80 是怎么回事?我已经发到到不同的服务器,结果都是这个名称,无法区分服务器了,怎么修改?
谢谢!

关于HttpReports.Dashboard的View和wwwroot

HttpReports是优秀的项目,很适合我们生产项目的实际需求,开始HttpReports试用。
说明:昨天,我们开启了HttpReports试用计划。引入了HttpReports.Dashboard后,项目内新增了View和wwwroot文件夹,仔细看后,这些是Dashboard的前端文件,与DotNetCore.CAP.Dashboard等很相似,但他们把前端资源文件内嵌入程序集,引入后,不会在项目内新增文件夹等,对于使用者来说,看不到Dashboard生成的View和wwwroot文件夹是有好的,也符合后端依赖引入规范。事实上,引入HttpReports.Dashboard的位置不一定是Web,.csproj中,更多时候是在Application.csproj等文件中。除了Dashboard外,其他都挺好,但也因为Dashboard在项目内新增文件不符合依赖引入规范,故而没能通过试用,当然,这是一个一分钟的优化,试用报告已写 “开源团队会在下个版本中优化“,期待作者发布下个版本,如InMemory能一块发布,最理想不过了,届时,我们将再次进行HttpReports试用,使用通过后,逐步推广至各生产项目,谢谢。

vscode dashboard样式显示不全的问题

作者。您好。今儿从dotnet跨平台看到这个 项目后,立刻尝试了一下咱们这个监控组件,很强大。不过有个小小的问题,不知道是我设置的问题还是什么,我初步是在windows下的vs2019拉取的dashboard,界面都正常。但是当我把程序上传svn到挪到mac下面的vscode上的时候,restore后之后发现那些快捷连接【views/HttpReports 和 wwwroot下面的静态资源】都没有链接过去,请问这是vs code对于这种包快捷连接的bug 还是什么?百思不得其解,我现在的解决 方案就是将文件复制到vscode中了。临时解决了。请问作者有没有遇到过?
另外:这个项目很好。一直想到 gprc的代码,没想到这里边集成了 server和client的demo。正好可以学习学习。很棒很棒。愿我们的dotnet社区越来越强大。

AddHttpReports可以优化一下下

    public static IHttpReportsBuilder AddHttpReports(this IServiceCollection services)
    {
        IConfiguration configuration = services.BuildServiceProvider().GetService<IConfiguration>().GetSection("HttpReports");
        services.AddOptions();
        services.Configure<HttpReportsOptions>(configuration); 
        return services.UseHttpReportsService(configuration);
    }

    // new
    public static IHttpReportsBuilder AddNewHttpReports(this IServiceCollection services)
    {
        services.AddOptions<HttpReportsOptions>()
            .Configure<IConfiguration>((options, configuration) =>
            {
                configuration.GetSection("HttpReports").Bind(options);
            });

        ///
    }

😀 Who is using HttpReports APM ?

We appreciate your support if you or your company is using HttpReports, You or your company can leave a comment here,We encourage to share this information with the community, thank you

【BUG】文件上传异步流操作冲突

如下操作代码,该操作如果在没有app.UseHttpReports();时上传多个文件完全没有问题,如果使用了app.UseHttpReports();后上传多个文件就会报错System.InvalidOperationException: The inner stream position has changed unexpectedly.

[HttpPost("UploadFilesAsync")]
public async Task<IActionResult> Uploads(IFormFileCollection fileCollection)
{
    var dictionary = new Dictionary<string, Stream>();
    foreach (var file in fileCollection)
    {
        dictionary.Add(file.FileName, file.OpenReadStream());
    }

    foreach (var stream in dictionary.Values)
    {
        var memoryStream = new MemoryStream();
        await stream.CopyToAsync(memoryStream);
    }
    return Ok();
}

😀 Who is using HttpReports APM ?

We appreciate your support if you or your company is using HttpReports, You can leave a comment here,We encourage to share this information with the community, thank you

format:

- Project : **HttpReports.Demo**
- Company: HttpReports
- Remark:监控预览站点
- Screenshot:  (if any)

从1.6 升级2.0 启动错误

: Error while validating the service descriptor 'ServiceType: HttpReports.IRequestProcesser Lifetime: Singleton ImplementationType: HttpReports.DefaultRequestProcesser': Unable to resolve service for type 'HttpReports.IReportsTransport' while attempting to activate 'HttpReports.DefaultRequestProcesser'.

提个小建议

首先赞一下,Web DashBoard的UI不错,集成、使用也很方便。就是我们有很多小的WebAPI项目,如果都要做监控就要部署很多套DashBoard,地址也不一样。建议项目集成时可以指定数据库表名或者按照系统名加前缀,HttpReports.Dashboard只部署一套,配置好数据库连接后右上角可以下拉选系统。

部署到Linux系统无法启动

system: centos 8
.net core runtime: 3.1.7
按照文档建立的空项目,无其他多余引用(报错,无法启动,后期添加nlog)

堆栈信息:

crit: Microsoft.AspNetCore.Hosting.Diagnostics[6]
      Application startup exception
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'flushThreshold')
   at HttpReports.DeferFlushCollection`1..ctor(Int32 flushThreshold, Int32 flushSecond)
   at HttpReports.AsyncCallbackDeferFlushCollection`1..ctor(Func`3 callback, Int32 flushThreshold, Int32 flushSecond)
   at HttpReports.Storage.Abstractions.BaseStorage..ctor(BaseStorageOptions options)
   at HttpReports.Storage.MySql.MySqlStorage..ctor(IOptions`1 options, ILogger`1 logger)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) in /_/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs:line 440
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.DependencyInjectionExtensions.UseHttpReportsDashboard(IApplicationBuilder app)
   at Ray.APM.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) in D:\Projects\Ray\Ray\Ray.APM\Startup.cs:line 24
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) in /_/src/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs:line 469
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'flushThreshold')
   at HttpReports.DeferFlushCollection`1..ctor(Int32 flushThreshold, Int32 flushSecond)
   at HttpReports.AsyncCallbackDeferFlushCollection`1..ctor(Func`3 callback, Int32 flushThreshold, Int32 flushSecond)
   at HttpReports.Storage.Abstractions.BaseStorage..ctor(BaseStorageOptions options)
   at HttpReports.Storage.MySql.MySqlStorage..ctor(IOptions`1 options, ILogger`1 logger)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) in /_/src/System.Private.CoreLib/src/System/Reflection/RuntimeConstructorInfo.cs:line 440
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.DependencyInjectionExtensions.UseHttpReportsDashboard(IApplicationBuilder app)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.