如何在 Azure 应用程序见解上忽略本地主机

How to Ignore localhost on Azure application insights

我最近开始托管我的第一个生产应用程序。我继续并激活了应用程序洞察力,我认为这很有价值。但是,我正在获取来自开发人员方面的统计信息,例如日志正在记录来自 localhost:xxxx 的条目。我确定有办法关闭它。谁能给我一些建议吗?

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

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

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>