Поделиться через


Устранение неполадок приложение Azure Insights в веб-проекте Java

В этой статье приводятся решения по устранению распространенных проблем в формате Q&A для Application Insights Java 2.x.

Внимание

Этот документ применяется к Java 2.x Application Insights, который больше не рекомендуется.

Документацию по последней версии можно найти в статье, посвященной Java 3.x для Application Insights.

Возникли вопросы или проблемы при использовании Azure Application Insights в Java? Ниже приведен ряд советов.

Ошибки сборки

В Eclipse или Intellij Idea при добавлении пакета SDK Application Insights через Maven или Gradle я получаю ошибки проверки сборки или контрольной суммы.

Если элемент версии зависимости <> использует шаблон, содержащий подстановочные знаки (например, <version>[2.0,)</version> в Maven или version:'2.+' Gradle), попробуйте указать определенную версию, например.2.6.4

Нет данных.

Я успешно добавил Application Insights и запустил приложение, но я никогда не видел данные на портале.

  • Подождите около минуты, а затем нажмите кнопку "Обновить". Диаграммы автоматически обновляются через определенные интервалы, однако их можно обновлять и вручную. Интервал обновления зависит от временного диапазона, выбранного для диаграммы.

  • Убедитесь, что вы определили ключ инструментирования в файле ApplicationInsights.xml (в папке ресурсов проекта) или настроили его в качестве переменной среды.

  • Убедитесь, что в XML-файле нет <DisableTelemetry>true</DisableTelemetry> узла.

  • При необходимости откройте TCP-порты 80 и 443 в брандмауэре для исходящего трафика dc.services.visualstudio.com. Полный список исключений брандмауэра.

  • На начальном экране Microsoft Azure посмотрите на карту состояния службы. Если есть некоторые признаки генерации оповещений, дождитесь возвращения в ОК, а затем закройте и снова откройте колонку приложения Application Insights.

  • Включите ведение журнала, добавив< элемент SDKLogger> под корневым узлом в файл ApplicationInsights.xml (в папке ресурсов проекта). Затем проверьте наличие записей, подготовленных для AI: INFO/WARN/ERROR любых подозрительных журналов.

  • Убедитесь, что правильный ApplicationInsights.xml файл успешно загружен пакетом SDK для Java. Проверьте выходные сообщения консоли для инструкции "Файл конфигурации успешно найден".

  • Если файл конфигурации не найден, проверьте выходные сообщения, чтобы узнать, где выполняется поиск файла конфигурации. Убедитесь, что ApplicationInsights.xml находится в одном из этих расположений поиска. Как правило, файл конфигурации следует размещать вместе с JAR-файлами пакета SDK для Application Insights. Например, в Tomcat папка будет иметь значение WEB-INF/classes. Во время разработки вы можете поместить ApplicationInsights.xml в папку ресурсов веб-проекта.

  • Проверьте страницу проблем GitHub, чтобы узнать о известных проблемах с пакетом SDK.

  • Не забудьте использовать ту же версию приложения Application Insights core, web, agent и ведения журналов, чтобы избежать проблем с конфликтом версий.

Примечание.

Эта статья была недавно обновлена для использования терминов журналов Azure Monitor вместо Log Analytics. Данные журнала по-прежнему хранятся в рабочей области Log Analytics, и они по-прежнему собираются и анализируются той же службой Log Analytics. Мы обновляем терминологию, чтобы лучше отразить роль журналов в Azure Monitor. Дополнительные сведения см. в статье Изменения фирменной символики Azure Monitor.

Я использовал для просмотра данных, но это остановлено

  • Вы достигли месячной квоты точек данных? Чтобы узнать, откройте квоту>параметров и цены. В этом случае можно обновить план или заплатить за дополнительную емкость. Дополнительные сведения см. в схеме ценообразования.

  • Возможно, вы недавно обновляли SDK? Убедитесь, что в каталоге проекта присутствуют только уникальные jar-файлы пакета SDK. Не должно быть двух разных версий пакета SDK.

  • Правильный ли ресурс AI вы изучаете? Не забудьте сопоставить iKey приложения с ресурсом, в котором вы ожидаете данные телеметрии. Эти значения должны совпадать.

Не отображаются все данные, которые ожидалось увидеть

  • Откройте страницу "Использование" и проверьте , выполняется ли выборка . (100 % передачи означает, что выборка не выполняется.) Службу Application Insights можно настроить на прием только части данных телеметрии, поступающих из приложения. Этот параметр помогает оставаться в пределах ежемесячной квоты телеметрии.

  • Включена ли выборка SDK? Если включена,то для выборки данных будет применяться частота, настроенная для всех применимых типов.

  • Возможно, выполняется старая версия пакета SDK для Java? Начиная с версии 2.0.1, мы представили механизм отказоустойчивости для обработки периодических сбоев сети и серверной части, а также сохраняемости данных на локальных дисках.

  • Проверьте, вызвана ли чрезмерная телеметрия. Если включить ведение журнала INFO, появится сообщение журнала "Приложение регулируется". Текущее ограничение составляет около 32 000 элементов телеметрии в секунду.

Агент Java не может записывать данные зависимостей

  • Вы настроили агент Java?

  • Убедитесь, что jar-файл агента Java и файл AI-Agent.xml помещаются в одну папку.

  • Убедитесь, что для автоматической коллекции поддерживается зависимость, которую вы пытаетесь выполнить автоматическое сбор. В настоящее время мы поддерживаем только MySQL, Microsoft SQL Server, Oracle DB и Кэш Azure для Redis коллекцию зависимостей.

Нет данных по использованию

Отображаются данные о запросах и времени отклика, но нет представления страниц, браузера или пользовательских данных

Вы успешно настроили приложение для отправки данных телеметрии с сервера. Теперь вам нужно настроить веб-страницы для отправки данных телеметрии из веб-браузера.

Если клиент является приложением на телефоне или другом устройстве, из него также можно отправлять данные телеметрии.

Для настройки телеметрии в клиенте и на сервере используйте один и тот же ключ инструментирования. Данные будут отображаться в одном ресурсе Application Insights, и вы сможете сопоставлять события с клиента и сервера.

Отключение данных телеметрии

Как отключить сбор данных телеметрии?

Выполните одно из следующих решений:

  • Отключите коллекцию в коде:

    TelemetryConfiguration config = TelemetryConfiguration.getActive();
    config.setTrackingIsDisabled(true);
    
  • Обновите ApplicationInsights.xml (в папке ресурсов в проекте). Добавьте следующий XML-элемент под корневым узлом:

    <DisableTelemetry>true</DisableTelemetry>
    

    При использовании метода XML необходимо перезапустить приложение при изменении значения.

Изменение целевого объекта

Как изменить ресурс Azure, в который проект отправляет данные?

  • Получите ключ инструментирования нового ресурса.

  • Если вы добавили Application Insights в проект с помощью набора средств Azure для Eclipse, щелкните правой кнопкой мыши веб-проект, выберите Azure>Configure Application Insights и измените ключ.

  • Если ключ инструментирования настроен как переменная среды, обязательно обновите значение переменной среды с помощью нового iKey.

  • В противном случае обновите ключ в ApplicationInsights.xml в папке ресурсов проекта.

Отладка данных из пакета SDK

Как определить, что делает пакет SDK?

Чтобы получить дополнительные сведения о том, что происходит в API, добавьте элемент SDKLogger> в корневой узел файла конфигурации ApplicationInsights.xml.<

ApplicationInsights.xml

В элементе <SDKLogger> можно также указать средству ведения журнала выходные данные в файл:

<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
    <Level>TRACE</Level>
    <UniquePrefix>AI</UniquePrefix>
    <BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>

Настройка Application Insights в инициализаторе Spring Boot

Чтобы включить ведение журнала ПАКЕТА SDK с приложениями spring boot с помощью начального средства Application Insights Spring Boot, добавьте следующие строки в файл application.properties :

azure.application-insights.logger.type=file
azure.application-insights.logger.base-folder-path=C:/agent/AISDK
azure.application-insights.logger.level=trace

Кроме того, можно распечатать стандартный поток ошибок:

azure.application-insights.logger.type=console
azure.application-insights.logger.level=trace

Агент Java

Чтобы включить ведение журнала агента JVM, обновите файл AI-Agent.xml:

<AgentLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
    <Level>TRACE</Level>
    <UniquePrefix>AI</UniquePrefix>
    <BaseFolderPath>C:/agent/AIAGENT</BaseFolderPath>
</AgentLogger>

Свойства командной строки Java

Начиная с версии 2.4.0

Чтобы включить ведение журнала с помощью параметров командной строки вместо изменения файлов конфигурации, выполните следующую команду:

java -Dapplicationinsights.logger.file.level=trace \
    -Dapplicationinsights.logger.file.uniquePrefix=AI \
    -Dapplicationinsights.logger.baseFolderPath="C:/my/log/dir" \
    -jar MyApp.jar

Или выполните следующую команду, чтобы распечатать в стандартном потоке ошибок:

java -Dapplicationinsights.logger.console.level=trace -jar MyApp.jar

Начальный экран Azure

Я просматриваю портал Azure. Скажет ли карта что-нибудь о приложении?

Нет, она показывает работоспособность серверов Azure по всему миру.

Разделы справки найти данные о моем приложении с начальной доски Azure (начальный экран)?

Если вы настроили приложение для Application Insights, выберите "Обзор>Application Insights", а затем выберите ресурс приложения, созданный для приложения. Чтобы ускорить работу приложения в будущем, закрепите приложение на начальной доске.

Серверы в интрасети

Можно ли наблюдать за сервером в интрасети?

Да, если ваш сервер может отправлять данные телеметрии на портал Application Insights через общедоступную сеть Интернет.

Возможно, вам потребуется открыть некоторые исходящие порты в брандмауэре сервера, чтобы SDK мог отправлять данные на портал.

Хранение данных

Как долго данные хранятся на портале? Защищен ли он?

Ознакомьтесь с разделом Хранение данных и конфиденциальность.

Ведение журнала отладки

Application Insights использует модуль org.apache.http. Это пространство имен перемещается в jar-файлах ядра Application Insights в пространстве com.microsoft.applicationinsights.core.dependencies.httpимен. Это перемещение позволяет Application Insights обрабатывать сценарии, в которых разные версии одних и тех же org.apache.http существуют в одной базе кода.

Примечание.

Если включить DEBUGведение журнала уровня для всех пространств имен в приложении, оно будет учитываться всеми выполняемыми модулями (включая org.apache.http переименованное как com.microsoft.applicationinsights.core.dependencies.http). Application Insights не сможет применить фильтрацию для этих вызовов, так как вызов журнала выполняется библиотекой Apache. DEBUGВедение журнала на уровне создает значительный объем данных журнала и не рекомендуется для динамических экземпляров рабочей среды.

Следующие шаги

Служба Application Insights настроена для серверного приложения Java. Что еще можно сделать?

Получить помощь

Заявление об отказе от ответственности за сведения о продуктах сторонних производителей

В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.