Устранение неполадок приложение Azure Insights в веб-проекте Java
В этой статье приводятся решения по устранению распространенных проблем в формате Q&A для Application Insights Java 2.x.
Предостережение
Этот документ относится к Application Insights Java 2.x, который больше не рекомендуется.
Документацию по последней версии можно найти на странице Application Insights Java 3.x.
Вопросы или проблемы с приложение Azure 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 (в папке resources в проекте) или настроили его в качестве переменной среды.
Убедитесь, что в XML-файле нет
<DisableTelemetry>true</DisableTelemetry>
узла.При необходимости откройте TCP-порты 80 и 443 в брандмауэре для исходящего трафика в
dc.services.visualstudio.com
. См. полный список исключений брандмауэра.На начальной панели Microsoft Azure просмотрите карту состояния службы. Если есть некоторые признаки оповещений, подождите, пока они не вернутся к ОК, а затем закройте и снова откройте колонку приложения Application Insights.
Включите ведение журнала , добавив <элемент SDKLogger> под корневым узлом в файле ApplicationInsights.xml (в папку resources в проекте). Затем проверка для записей, предваряющихся
AI: INFO/WARN/ERROR
для любых подозрительных журналов.Убедитесь, что пакет SDK для Java успешно загрузил правильный файлApplicationInsights.xml . Проверьте выходные сообщения консоли на наличие инструкции "Файл конфигурации успешно найден".
Если файл конфигурации не найден, проверка выходные сообщения, чтобы узнать, где выполняется поиск файла конфигурации. Убедитесь, что ApplicationInsights.xml находится в одном из этих расположений поиска. Как правило, файл конфигурации можно поместить рядом с jaR пакета SDK Для Application Insights. Например, в Tomcat папка будет иметь значение WEB-INF/classes. Во время разработки можно поместитьApplicationInsights.xmlв папку resources веб-проекта.
Просмотрите страницу проблем GitHub , чтобы узнать об известных проблемах с пакетом SDK.
Не забудьте использовать одну и ту же версию основных приложений Application Insights, веб-приложений, агентов и приложений ведения журнала, чтобы избежать конфликтов версий.
Примечание.
Эта статья недавно была обновлена для использования термина Журналы Azure Monitor вместо Log Analytics. Данные журнала по-прежнему хранятся в рабочей области Log Analytics и по-прежнему собираются и анализируются той же службой Log Analytics. Мы обновляем терминологию, чтобы лучше отражать роль журналов в Azure Monitor. Дополнительные сведения см. в статье Изменения терминологии Azure Monitor .
Раньше я видел данные, но они остановлены
Достигли ли вы ежемесячной квоты точек данных? Чтобы узнать,> откройте Параметрыквоты и цены. В этом случае можно обновить план или заплатить за дополнительную емкость. Дополнительные сведения см. в схеме ценообразования.
Вы недавно обновили пакет SDK? Убедитесь, что в каталоге проекта присутствуют только уникальные jar-файлы SDK. Не должно быть двух разных версий пакета SDK.
Вы ищете правильный ресурс ИИ? Не забудьте сопоставить 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 (в папке resources проекта). Добавьте следующий XML-элемент в корневой узел:
<DisableTelemetry>true</DisableTelemetry>
При использовании метода XML необходимо перезапустить приложение при изменении значения.
Изменение целевого объекта
Как изменить ресурс Azure, в который проект отправляет данные?
Если вы добавили Application Insights в проект с помощью набора средств Azure для Eclipse, щелкните правой кнопкой мыши веб-проект, выберите Azure>Configure Application Insights и измените ключ.
Если вы настроили ключ инструментирования в качестве переменной среды, обязательно обновите значение переменной среды новым iKey.
В противном случае обновите ключ в ApplicationInsights.xml в папке resources проекта.
Отладка данных из пакета 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>
Начальная загрузка 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. Что еще можно сделать?
Справка
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.