web-dev-qa-db-ja.com

404応答を無視するようにApplicationInsightsに指示する方法

ApplicationInsightsは最近、毎週のテレメトリレポートの郵送を開始しました。私の問題は、失敗したリクエスト、失敗した依存関係、例外がたくさんあることを教えてくれることですが、クリックして失敗を分析すると、それらはすべてボットまたは悪者による存在しないページへのアクセスの試みに関連していることがわかります私のウェブサイト。

存在しないページへのアクセスの試みに関連するメトリックに関心がないことをApplicationInsightsに伝える簡単な方法はありますか?はい、ウィークリーテレメトリレポートに感謝しますが、「誤検知」と見なされる頻繁に報告される問題のカテゴリを調査するために時間をかける必要はありません。

19

テレメトリプロセッサ を実装することで、AIテレメトリをフィルタリングできます。たとえば、次のようにITelemetryProcessor'Process 'メソッドを実装することで、404 NotFoundテレメトリを除外できます。

public void Process(ITelemetry item)
{
    RequestTelemetry requestTelemetry = item as RequestTelemetry;

    if (requestTelemetry != null && int.Parse(requestTelemetry.ResponseCode) == (int)HttpStatusCode.NotFound)
    {
        return;
    }

    this.Next.Process(item);
}
16
yonisha

リクエストのテレメトリを変更して、SuccessFailではない)としてマークすることができます。このようにして、リクエストはAIによって適切にログに記録されますが、成功したものとしてログに記録されます。 Telemetry Initializer を実装する必要があります。

例:

public class CustomTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        switch (telemetry)
        {
            case RequestTelemetry request when request.ResponseCode == "404":
                request.Success = true;
                break;
        }
    }
}
3
gius