【问题标题】:How do I reduce the amount of trace logs that Application Insights sends to the server如何减少 Application Insights 发送到服务器的跟踪日志量
【发布时间】:2015-12-15 22:26:55
【问题描述】:

我正在使用负载适中的生产系统。跟踪事件和 AI 发送的数量太详细了,以后很难浏览日志。

对服务器的每个请求都有如下信息:

Message='Selected formatter='JsonMediaTypeFormatter', content-type='application/json; charset=utf-8'', Operation=DefaultContentNegotiator.Negotiate

Message='Action returned 'RZ.API.Support.Controllers.OperationActionResult`1[System.Collections.Generic.List`1[RZ.Entity.System.ClientMessage]]'', Operation=ReflectedHttpActionDescriptor.ExecuteAsync

每个请求可能有 30 个条目!

我只需要请求类型:

12/16/2015, 9:17:29 AM - REQUEST

GET /api/v1/user/messages

还有结果代码 - 以及我在此过程中所做的任何自定义内容。

所以基本上我想修剪除请求和结果(以及任何错误等)之外的大多数跟踪。

我注意到了 AI 配置中的这个坏男孩:

<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web"/>

...但我一辈子都看不到任何关于如何要求它减少发送的东西数量的文档!

非常感谢任何帮助。

约旦。

附:所有额外的日志记录使我们超过了每月 1500 万的计划,我们必须升级!

【问题讨论】:

    标签: azure asp.net-web-api azure-application-insights


    【解决方案1】:

    RequestTrackingTelemetryModule 不会像您描述的那样做任何事情。它添加了请求、异常和依赖项集合。在您的示例中,您说您看到详细的 WebApi 跟踪被转发到 ApplicationInsights。我假设您实际使用 Application Insights 日志记录适配器。

    您可以在此处阅读如何将 WebApi 跟踪转发到 AI 版本 1:http://apmtips.com/blog/2014/11/13/collect-asp-dot-net-mvc-web-api-traces-with-application-insights/

    您可以在此处了解如何将 WebApi 跟踪转发到 AI 版本 2: http://apmtips.com/blog/2016/01/05/webapi-tracing-powered-by-ai-in-vs2015-update1/

    日志适配器源代码:https://github.com/Microsoft/ApplicationInsights-dotnet-logging

    文档:https://azure.microsoft.com/en-us/documentation/articles/app-insights-search-diagnostic-logs/#trace

    所以你有多种选择:

    【讨论】:

      【解决方案2】:

      回答我自己的问题。

      在我的 WebApiConfig 文件中,我有:

      config.EnableSystemDiagnosticsTracing();
      

      删除这条线大大减少了我想要实现的混乱。

      【讨论】:

      • RequestTrackingTelemetryModule 不会像您描述的那样做任何事情。它添加了请求、异常和依赖项集合。在您的示例中,您说您看到详细的 WebApi 跟踪被转发到 ApplicationInsights。我假设您实际使用 Application Insights 日志记录适配器。阅读:apmtips.com/blog/2014/11/13/…
      【解决方案3】:

      从 Application Insights SDK 2.0 版开始,您还可以通过启用采样来限制发送的数据:

      https://azure.microsoft.com/en-us/documentation/articles/app-insights-sampling/

      如果你添加

       <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
      

      对于您的 ApplicationInsights.config,sdk 可以限制发出的数量。上面的文章有很多设置/配置,您可以使用它来获取其他特定行为,但上面的文章是最简单的。

      【讨论】:

        【解决方案4】:

        据我所知,RequestTrackingTelemetryModule 没有可用的配置选项。您可以将其关闭(通过卸载相应的 NuGet 包或注释 xml)和/或安装不同的/额外的遥测模块。

        有关模块和配置选项的列表,请参阅 app-insights-configuration-with-applicationinsights-config

        【讨论】:

        • 感谢@CaringDev。在我的调试工作中,我尝试从 ApplicationInsights.config 文件中删除几乎所有内容——但所有数据仍在发布中——这非常令人困惑。我上面的回答表明了为什么你应该只在一个位置进行配置 - 文件或代码,但也许不能同时进行!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-09
        • 1970-01-01
        • 2023-01-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多