如何告诉Application Insights忽略404响应

时间:2016-05-30 20:43:36

标签: c# azure azure-application-insights

ApplicationInsights最近开始向我发送每周遥测报告。我的问题是,它告诉我有一堆失败的请求,失败的依赖关系和异常,但是当我点击分析失败时,我发现它们都与机器人或坏人尝试访问不存在的页面有关。我的网站。

是否有一种简单的方法可以告诉ApplicationInsights我对与尝试访问不存在的页面相关的指标不感兴趣?是的,我很欣赏每周遥测报告,但我不想花时间调查我认为经常报告的一类问题"误报"。

2 个答案:

答案 0 :(得分:16)

您可以通过实施Telemetry Processor来过滤AI遥测。 例如,您可以通过实施ITelemetryProcessor'Process'方法过滤掉404 Not Found遥测,如下所示:

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);
}

答案 1 :(得分:3)

您可以修改请求遥测并将其标记为Success(而不是Fail)。这样,该请求将由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;
        }
    }
}