App Insights未在Spring Boot应用程序中使用RequestTelemetryFilter进行运行状况检查Controller

时间:2019-03-13 21:53:18

标签: azure-application-insights

我有一个带有几个控制器的Spring Boot应用程序,我想跟踪它们的依赖关系(包括出站Http请求)。一切都按预期进行。但是,我有一个不需要进行遥测的健康检查控制器(返回204)。所有其他响应都提到了自定义代码组件,但是根据the documentation,这应该在AI-Agent.xml配置中是可行的。

<BuiltInProcessors>
  <Processor type="RequestTelemetryFilter">
    <Add name="NotNeededResponseCodes" value="204" />
  </Processor>
</BuiltInProcessors>

我在类路径上注意到有两个RequestTelemtryFilter实例(一个来自ai-core,一个来自ai-web,在我调试时都没有命中)。

1 个答案:

答案 0 :(得分:0)

配置代理(通过AI-Agent.xml)与配置自定义遥测(通过Applicationinsights.xml)不同。 Spring boot +该代理需要使用自定义遥测处理器,并通过@Bean进入您的配置。 AI-Agent中不需要其他XML。

public class HealthCheckTelemetryFilter implements TelemetryProcessor
{

  public HealthCheckTelemetryFilter()
  {
    // TODO Auto-generated constructor stub
  }

  @Override
  public boolean process(Telemetry telemetry)
  {
    RequestTelemetry reqTel = (RequestTelemetry) telemetry;

    if(reqTel.getResponseCode().equals(HttpStatus.NO_CONTENT.toString()))
        return false;
    else
        return true;
  }

}

注意:不要忘记进行适当的类型检查