#azure-application-insights
#azure-application-insights
Вопрос:
У меня есть приложение Spring Boot с несколькими контроллерами, я хочу отслеживать их зависимости (включая исходящие Http-запросы). Все работает, как ожидалось. Однако у меня есть один контроллер для проверки работоспособности (возвращающий 204), для которого мне не нужна телеметрия. Во всех других ответах упоминаются компоненты пользовательского кода, но, согласно документации, это должно быть выполнимо в AI-Agent.xml конфигурация.
<BuiltInProcessors>
<Processor type="RequestTelemetryFilter">
<Add name="NotNeededResponseCodes" value="204" />
</Processor>
</BuiltInProcessors>
Я заметил в пути к классу, что есть два экземпляра RequestTelemtryFilter (один из ai-core и один из ai-web, ни один из которых не попадает при отладке).
Ответ №1:
Настройка агента (через AI-Agent.xml) отличается от настройки пользовательской телеметрии (через Applicationinsights.xml). Spring boot агент требует использования пользовательского процессора телеметрии и подключения к вашей конфигурации через @Bean. Никакого дополнительного XML в AI-агенте не требуется.
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;
}
}
ПРИМЕЧАНИЕ: не забудьте проверить соответствующий тип