Устранение неполадок приложение 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.