Приложение Spring Boot в Azure не может подключиться к Application Insights

У меня есть несколько приложений 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-агент для анализа приложений, некоторые — нет, поэтому я не думаю, что проблема заключается в агенте.

А гугл мне сегодня не показался другом, так как результатов по этой теме нет.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
155
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

  • Здесь я смог подключиться к информации о приложении, добавив 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();

убедитесь, что указанный выше файл выше всего остального в основной функции.

  • Теперь возвращаясь к вашей ошибке, возможно, это связано с тем, что соединение с информацией о приложении закрывается до того, как ваше приложение сможет отправить журналы. Попробуйте повторно развернуть аналитику приложений.

Приложения нормально подключаются к ИИ. Это новая проблема подключения во время выполнения. Повторное развертывание приложений и даже повторная сборка экземпляра приложения с нуля не оказали влияния.

Ben Ketteridge 13.12.2022 16:42
Ответ принят как подходящий

Оказывается, реальная проблема заключалась в настройке брандмауэра между экземплярами приложения и службой Application Insights. Брандмауэр настроен третьей стороной (аутсорсинг FTW), и они изменили MTU сети с 1500 до 1400, что привело к большому количеству потерянных пакетов. Некоторые сообщения проходили (что затрудняло диагностику), а иногда даже большие сообщения (в конце концов) проходили, но исправление заключалось в том, чтобы отменить изменение брандмауэра.

Другие вопросы по теме