如何告诉Application Insights忽略404响应

Bob*_*lth 19 c# azure azure-application-insights

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

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

giu*_*ius 25

您可以修改请求遥测并将其标记为Success(not 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这实际上是更好的答案,因为请求已正确记录,但不会显示为失败。 (2认同)

yon*_*sha 19

您可以通过实施遥测处理器来过滤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);
}
Run Code Online (Sandbox Code Playgroud)

  • 另外一个:404的HttpStatusCode是HttpStatusCode.NotFound (3认同)
  • 您应该检查requestTelemetry.ResponseCode是否为null。我不知道什么时候发生,但我只是有这种情况 (2认同)