2016-02-12 4 views
5

Недавно я начал выпуск своего первого приложения. Я пошел вперед и активировал анализ приложений, который, по моему мнению, имеет большую ценность. Тем не менее, я получаю статистику, которая поступает со стороны разработчика, например, журналы записывают записи из localhost: xxxx. Я уверен, что есть способ отключить это. Может ли кто-нибудь дать мне несколько указателей, пожалуйста?Как игнорировать localhost на основе приложений Azure

ответ

7
  1. Вы можете отфильтровать уже собранную телеметрию, что вы получаете с помощью F5 в пользовательском интерфейсе, так как он имеет свойство IsDeveloperMode = истина
  2. Вы можете иметь преобразование web.config, который удаляет модуль Application Insights из web.debug.config и листьев это только в web.release.config (если у вас есть только автоматически собранные свойства)
  3. Вы можете удалить ключ из конфигурации и установить его только для версии выпуска в коде: TelemetryConfiguration.Active.InsrumentationKey = «MyKey» (если вы не предоставляйте iKey в отладочном состоянии, вы все равно можете видеть всю телеметрию в концентраторе AI в VS 2015)
  4. Вы можете использовать differen т iKeys для отладки и выпуска снова установив его в коде
  5. Вы можете отключить ApplicationInsights полностью отладить установку TelemetryConfiguration.Active.DisableTelemetry = истина
+0

Я добавил следующие строки кода в моих FilterConfig.cs: '#if RELEASE TelemetryConfiguration .Active.DisableTelemetry = true; # endif' Анастасия, Как вы думаете, это сработает? – chesco

+0

Если у вас стандартное приложение, определяющее RELEASE, и если вы не создаете какую-либо пользовательскую конфигурацию TelemetryConfiguration в коде, чем yes. DisableTelemetry применима к каждой TelemetryConfiguration. Autocollection использует только TelemetryConfiguration.Active. Также я не знаю, если вы отследите smth до того, как код в FilterConfig будет достигнут (например, некоторые следы). Если да, то телеметрия, очевидно, будет отправлена. –

8

Вы также можете фильтровать LOCALHOST телеметрию с помощью TelemetryProcessor (если вы используете последняя (предварительная версия 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> 
+0

Это лучше, потому что я могу отправить пользовательский заголовок с Selenium, и этот код может игнорировать мои тесты. Да, я знаю, у меня должна быть специальная тестовая среда. Но, по крайней мере, я тестирую ..: D – ppumkin