2017-03-03 12 views
1

Application Insightsで依存関係の呼び出しを除外します。私は、呼び出しが特定のホストの1つにあるかどうかを確認したい。Application Insightsでの依存関係のフィルタリング

public class ApplicationInsightsFilter : ITelemetryProcessor 
{ 
    ... 

    IgnoredHosts = new List<string> 
    { 
     "foo.queue.core.windows.net", 
     "foo.blob.core.windows.net", 
     "bar.queue.core.windows.net", 
     "bar.blob.core.windows.net" 
    }; 

    public void Process(ITelemetry item) 
    { 
     var request = item as DependencyTelemetry; 

     if (request?.Name != null) 
     { 
      Uri uri = Uri.TryCreate(request.Name, UriKind.Absolute, out uri) ? uri : null; 
      if (uri != null && IgnoredHosts.Contains(uri.Host)) 
       return; 
     } 

     Next.Process(item); 
    } 
} 

そしてProgram.cs中:

public static void ConfigureLogging() 
{ 
    ... 
    TelemetryConfiguration.Active.TelemetryProcessorChainBuilder 
       .Use(next => new ApplicationInsightsFilter(next)) 
       .Build(); 
} 

デバッグ、ボットない生産の間、これは正常に動作しますthis approach以下の私はこれを作ってみました。プロダクションでは、これらの呼び出しは引き続き記録されます。

答えて

0

それはあなたがApplicationInsights.configファイルを持っている場合、あなたはまた、このプロセッサを挿入する必要があることが判明:

<TelemetryProcessors> 
    <Add Type="MyWebApplication.ApplicationInsightsFilter, MyWebApplication"> 
    </Add> 
</TelemetryProcessors> 

documentationは言うにもかかわらず:

また

、あなたが初期化することができますコード内のフィルタ。

関連する問題