Я уже следовал инструкции здесь .Я попробовал как конфигурацию, так и «в коде» подход инициализации и регистрации нашего процессора телеметрии.Моя цель состоит в том, чтобы отфильтровать некоторые HTTP-ответы, чтобы они не попадали в выборочные данные.У меня не было никакого успеха.Хотя наш процессор инициализируется при запуске приложения, метод Process никогда не срабатывает.Кроме того, я уже убедился, что в конфигурации есть InstrumentationKey и что я использую правильный ключ.Что еще мне не хватает?
Вот что у меня есть:
public class MyTelemetryProcessor : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
// You can pass values from .config
public string MyParamFromConfigFile { get; set; }
// Link processors to each other in a chain.
public MyTelemetryProcessor(ITelemetryProcessor next)
{
this.Next = next; <-- this is always hit indicating this processor is active
}
public void Process(ITelemetry item)
{
// To filter out an item, just return
if (!OKtoSend(item)) { return; } <-- breakpoint here is never hit
// Modify the item if required
ModifyItem(item);
this.Next.Process(item);
}
private bool OKtoSend(ITelemetry item) <-- and consequently this method is never hit
{
var request = item as RequestTelemetry; <-- breakpoint here is never hit
// some more code goes here
return request.Success.GetValueOrDefault(false);
}
// Example: replace with your own modifiers.
private void ModifyItem(ITelemetry item)
{
item.Context.Properties.Add("app-version", "1." + MyParamFromConfigFile);
}
}
И вот как это регистрируется.Я вижу, что это происходит во время отладки при запуске приложения:
var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
builder.Use((next) => new MyTelemetryProcessor (next));
builder.Build();