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