У меня есть несколько приложений Java, развернутых службой приложений Azure с помощью Application Insights. За последние 72 часа они начали не развертываться при перезапуске. Насколько я знаю, ничего не изменилось, хотя, конечно, я бы так сказал.
Единственный дымящийся пистолет, который я могу найти, это то, что в default-docker.log есть предупреждение.
WARN 138 --- [ main] c.m.azure.telemetry.TelemetrySender : Failed to exchange telemetry request, I/O error on POST request for "https://dc.services.visualstudio.com/v2/track": Connection reset; nested exception is java.net.SocketException: Connection reset.
Некоторые приложения используют java-агент для анализа приложений, некоторые — нет, поэтому я не думаю, что проблема заключается в агенте.
А гугл мне сегодня не показался другом, так как результатов по этой теме нет.
applicationsinsights.json
, который будет содержать строку подключения, и logback-spring.xml
, который настроит ведение журнала в приложении.logback-spring.xml
<?xml version = "1.0" encoding = "UTF-8" ?>
<configuration>
<appender name = "aiAppender" class = "com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
</appender>
<appender name = "Console" class = "ch.qos.logback.core.ConsoleAppender">
<layout name = "ch.qos.logback.classic.PatternLayout">
<Pattern> %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%c{}): %msg%n%throwable;%n
</Pattern>
</layout>
</appender>
<root level = "warn">
<appender-ref ref = "aiAppender" />
<appender-ref ref = "Console" />
</root>
</configuration>
applicationinsights.json
{
"ConnectionString":""
}
pom.xml (зависимости)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-logging-logback</artifactId>
<version>[2.0,)</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-spring-boot-starter</artifactId>
<version>2.6.4</version>
</dependency>
В основной файл я также добавил следующую строку
ApplicationInsights.attach();
убедитесь, что указанный выше файл выше всего остального в основной функции.
Оказывается, реальная проблема заключалась в настройке брандмауэра между экземплярами приложения и службой Application Insights. Брандмауэр настроен третьей стороной (аутсорсинг FTW), и они изменили MTU сети с 1500 до 1400, что привело к большому количеству потерянных пакетов. Некоторые сообщения проходили (что затрудняло диагностику), а иногда даже большие сообщения (в конце концов) проходили, но исправление заключалось в том, чтобы отменить изменение брандмауэра.
Приложения нормально подключаются к ИИ. Это новая проблема подключения во время выполнения. Повторное развертывание приложений и даже повторная сборка экземпляра приложения с нуля не оказали влияния.