如何告诉 Application Insights 忽略 404 响应

How to tell Application Insights to ignore 404 responses

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

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

的一类经常报告的问题

您可以通过实现 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);
}

您可以修改请求遥测并将其标记为 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;
        }
    }
}