如何在Azure应用程序洞察中忽略localhost

时间:2016-02-12 18:58:18

标签: c# azure azure-application-insights

我最近开始托管我的第一个生产应用程序。我继续并激活应用程序见解,我认为这些有很多价值。但是,我获得了来自开发人员方面的统计信息,例如日志是从localhost:xxxx记录条目。我确定有办法解决这个问题。有人可以给我一些指示吗?

2 个答案:

答案 0 :(得分:10)

您还可以使用TelemetryProcessor过滤localhost遥测(如果您使用的是最新版本(Application Insights Web SDK的预发布版本)。这是一个示例。将此类添加到您的项目中:

public class LocalHostTelemetryFilter : ITelemetryProcessor
{
    private ITelemetryProcessor next;
    public LocalHostTelemetryFilter(ITelemetryProcessor next)
    {
        this.next = next;
    }

    public void Process(ITelemetry item)
    {
        var requestTelemetry = item as RequestTelemetry;
        if (requestTelemetry != null && requestTelemetry.Url.Host.Equals("localhost", StringComparer.OrdinalIgnoreCase))
        {
            return;
        }
        else
        {
            this.next.Process(item);
        }   
    }
}

然后在ApplicationInsights.config中注册它:

<TelemetryProcessors>
    <Add Type="LocalhostFilterSample.LocalHostTelemetryFilter, LocalHostFilterSample"/>
</TelemetryProcessors>

答案 1 :(得分:8)

  1. 您可以过滤掉已经在UI中使用F5获得的遥测,因为它具有属性IsDeveloperMode = true
  2. 您可以进行web.config转换,从web.debug.config中删除Application Insights模块,并将其保留在web.release.config中(如果您只有自动收集的属性)
  3. 您可以从配置中删除检测密钥,并仅将其设置为代码中的发布版本:TelemetryConfiguration.Active.InsrumentationKey =“MyKey”(如果您未在调试中提供iKey,您仍然可以在VS 2015中查看AI集线器中的所有遥测)
  4. 您可以使用不同的iKeys进行调试,并通过设置代码
  5. 再次发布
  6. 您可以通过设置TelemetryConfiguration.Active.DisableTelemetry = true
  7. 在调试中完全禁用ApplicationInsights