Недавно я начал размещать свое первое производственное приложение. Я пошел дальше и активировал информацию о приложениях, которая, как мне кажется, имеет большую ценность. Однако я получаю статистику со стороны разработчика, например, в журналы записываются записи с localhost: xxxx. Я уверен, что есть способ отключить это. Может ли кто-нибудь дать мне несколько советов, пожалуйста?
Как игнорировать локальный хост в аналитике приложений Azure
Ответы (2)
Вы также можете отфильтровать данные телеметрии на локальном хосте с помощью 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>
person
Alex Bulankou
schedule
13.02.2016
Это более приятный способ, потому что я могу отправить собственный заголовок с помощью Selenium, и этот код затем может игнорировать мои тесты. Да, я знаю, у меня должна быть специальная тестовая среда... конечно. Но, по крайней мере, я тестирую.. :D
- person Piotr Kula; 24.07.2017
Лучшая версия этого, которая имеет дело со всеми видами ведения журнала, а не только с теми, которые связаны с запросами, состоит в том, чтобы внедрить среду IHostingEnvironment в конструктор и проверить возврат if(env.IsDevelopment());
- person carl-johan.blomqvist; 01.09.2019
- Вы можете отфильтровать уже собранные данные телеметрии, которые вы получаете с помощью F5 в пользовательском интерфейсе, поскольку у них есть свойство IsDeveloperMode=true.
- У вас может быть преобразование web.config, которое удаляет модуль Application Insights из web.debug.config и оставляет его только в web.release.config (если у вас есть только автоматически собираемые свойства).
- Вы можете удалить инструментальный ключ из конфигурации и установить его только для версии выпуска в коде: TelemetryConfiguration.Active.InsrumentationKey = "MyKey" (если вы не предоставите iKey в отладке, вы все равно сможете видеть всю телеметрию в концентраторе AI в VS 2015)
- Вы можете использовать разные ключи iKey для отладки и повторного выпуска, установив их в коде.
- Вы можете полностью отключить ApplicationInsights в отладке, установив TelemetryConfiguration.Active.DisableTelemetry = true
person
Anastasia Black
schedule
13.02.2016
Я добавил следующие строки кода в свой FilterConfig.cs:
#if !RELEASE TelemetryConfiguration.Active.DisableTelemetry = true; #endif
Анастасия, как вы думаете, это сработает?
- person chesco; 18.02.2016
Если у вас есть стандартное приложение, которое определяет RELEASE, и если вы не создаете в коде никаких пользовательских настроек TelemetryConfiguration, тогда да. DisableTelemetry применим к каждой конфигурации TelemetryConfiguration. Автосбор использует только TelemetryConfiguration.Active. Также я не знаю, отслеживаете ли вы что-то до того, как будет достигнут код в FilterConfig (например, некоторые трассировки). Если да, то эти данные телеметрии, очевидно, будут отправлены.
- person Anastasia Black; 18.02.2016