Использование внутрипроцессного агента Java Application Insights в Azure Spring Apps
Примечание.
Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.
Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.
С помощью приложений Spring Boot Native Image используйте проект приложения Java для OpenTelemetry OpenTelemetry в Spring Boot, а не агент Java Application Insights.
Эта статья относится к: ✔️ стандартное потребление и выделенная (предварительная версия) ✔️ Basic/Standard ✔️ Enterprise
В этой статье объясняется, как отслеживать приложения с помощью агента Java Application Insights в Azure Spring Apps.
Возможности этой функции
- Поиск данных трассировки с использованием фильтров.
- Просмотр карты зависимостей для приложений Spring.
- Проверка производительности запросов.
- Мониторинг динамических метрик в режиме реального времени.
- Проверка сбоев при запросах.
- Проверка метрик приложения.
- Создание журналов приложений.
Application Insights может предоставлять множество полезных сведений, в том числе:
- Схема приложений
- Производительность
- Сбои
- Метрики
- Интерактивные метрики
- Availability
- Журналы
Использование возможности Application Insights
Если возможность Application Insights включена, вы можете выполнить следующее.
В области навигации выберите Application Insights , чтобы просмотреть страницу обзора Application Insights. На странице обзора показан обзор всех запущенных приложений.
Щелкните Схема приложений, чтобы просмотреть состояние вызовов между приложениями.
Щелкните связь между customers-service и
petclinic
, чтобы просмотреть дополнительные сведения, например запрос SQL.Выберите конечную точку, чтобы просмотреть список всех приложений, выполняющих запросы к конечной точке.
В области навигации выберите "Производительность", чтобы просмотреть данные о производительности всех операций приложений, зависимостей и ролей.
В области навигации выберите "Сбои" , чтобы увидеть непредвиденные сбои или исключения из приложений.
В области навигации выберите метрики и выберите пространство имен, чтобы просмотреть метрики Spring Boot и пользовательские метрики , если таковые есть.
В области навигации выберите динамические метрики, чтобы просмотреть метрики в режиме реального времени для различных измерений.
В области навигации выберите "Доступность" , чтобы отслеживать доступность и скорость реагирования веб-приложений, создавая тесты доступности в Application Insights.
В области навигации выберите журналы для просмотра журналов всех приложений или журналов одного приложения при фильтрации
cloud_RoleName
.
Управление Application Insights с помощью портал Azure
Включите внутрипроцессный агент Java с помощью следующей процедуры.
Перейти к службе | Страница обзора экземпляра службы и выберите Application Insights в разделе "Мониторинг ".
Щелкните Включить Application Insights, чтобы включить Application Insights в Azure Spring Apps.
Выберите существующий экземпляр Application Insights или создайте новый.
Если компонент Application Insights включен, можно настроить одну необязательную частоту выборки (по умолчанию 10,0 %).
Щелкните Сохранить для сохранения изменений.
Примечание.
Не используйте один и тот же экземпляр Application Insights в разных экземплярах Azure Spring Apps или отображаются смешанные данные.
Для проверки или обновления текущих параметров в Application Insights можно использовать портал.
Включение Application Insights с помощью портала Azure
Выберите Application Insights.
Включите Application Insights, выбрав Изменить привязку или щелкнув гиперссылку Без привязки.
Измените Application Insights или значение Частота выборки, а затем нажмите кнопку Сохранить.
Отключение Application Insights
Выберите Application Insights.
Щелкните Отменить привязку, чтобы отключить Application Insights.
Изменение параметров Application Insights
Выберите имя в столбце Application Insights, чтобы открыть раздел Application Insights.
Изменение привязок пакета сборки Application Insights в службе сборки
Чтобы проверить и обновить текущие параметры для привязок пакета сборки Application Insights в службе сборки, выполните следующие действия:
- Нажмите Build Service (Служба сборки).
- Выберите построитель.
- Щелкните Изменить в столбце привязок.
Параметры Application Insights находятся в элементе ApplicationInsights, который указан в столбце Тип привязки.
Щелкните гиперссылку Привязка или выберите пункт Изменить привязку в меню с многоточием, чтобы открыть и изменить привязки пакета сборки Application Insights.
Измените параметры привязки и нажмите кнопку Сохранить.
Управление Application Insights с помощью Azure CLI
Вы можете управлять Application Insights с помощью команд Azure CLI. В следующих командах обязательно замените <замещающий текст> описанными значениями. Заполнитель <service-instance-name> обозначает имя экземпляра Azure Spring Apps.
Включить Application Insights
Для настройки Application Insights при создании экземпляра Azure Spring Apps используйте приведенную ниже команду. Для аргумента app-insights
можно указать имя Application Insights или идентификатор ресурса.
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Вы также можете использовать строку подключения Application Insights (предпочтительно) или ключ инструментирования, как показано в следующем примере.
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Отключение Application Insights
Чтобы отключить Application Insights при создании экземпляра Azure Spring Apps, используйте следующую команду:
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights \
--sku Enterprise
Проверка параметров Application Insights
Чтобы проверить параметры Application Insights существующего экземпляра Azure Spring Apps, используйте следующую команду:
az spring app-insights show \
--resource-group <resource-group-name> \
--name <service-instance-name>
Обновление Application Insights
Чтобы обновить Application Insights для использования строки подключения (предпочтительно) или ключа инструментирования, используйте следующую команду:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
Чтобы обновить Application Insights для использования имени ресурса или идентификатора, используйте следующую команду:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
Отключение Application Insights с помощью команды update
Чтобы отключить Application Insights в существующем экземпляре Azure Spring Apps, используйте следующую команду:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable
Управление привязками пакета сборки Application Insights
Этот раздел относится только к плану Enterprise и содержит инструкции, которые дополняют предыдущий раздел.
План Azure Spring Apps Enterprise использует привязки buildpack для интеграции приложение Azure Insights с типомApplicationInsights
. Дополнительные сведения см. в разделе "Настройка сертификатов интеграции APM и ЦС".
Чтобы создать привязку пакета сборки Application Insights, используйте следующую команду:
az spring build-service builder buildpack-binding create \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Чтобы получить список всех привязок пакета сборки и найти привязки Application Insights с типом ApplicationInsights
, используйте следующую команду:
az spring build-service builder buildpack-binding list \
--resource-group <your-resource-group-name> \
--service <your-service-resource-name> \
--builder-name <your-builder-name>
Чтобы заменить привязку пакета сборки Application Insights, используйте следующую команду:
az spring build-service builder buildpack-binding set \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Чтобы получить привязку пакета сборки Application Insights, используйте следующую команду:
az spring build-service builder buildpack-binding show \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Чтобы удалить привязку пакета сборки Application Insights, используйте следующую команду:
az spring build-service builder buildpack-binding delete \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Автоматизация
В следующих разделах описывается автоматизация развертывания с помощью Bicep, шаблонов Azure Resource Manager (шаблонов ARM) или Terraform.
Bicep
Чтобы развернуть файл Bicep, скопируйте следующее содержимое в файл main.bicep . Дополнительные сведения см. в статье Microsoft.AppPlatform Spring/monitoringSettings.
param springName string
param location string = resourceGroup().location
resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
name: springName
location: location
properties: {}
}
resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
parent: spring
name: 'default'
properties: {
appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
appInsightsSamplingRate: 88
}
}
Шаблоны ARM
Чтобы выполнить развертывание с помощью шаблона ARM, скопируйте приведенное ниже содержимое в файл azuredeploy.json. Дополнительные сведения см. в статье Microsoft.AppPlatform Spring/monitoringSettings.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"springName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"apiVersion": "2020-07-01",
"name": "[parameters('springName')]",
"location": "[parameters('location')]",
"properties": {}
},
{
"type": "Microsoft.AppPlatform/Spring/monitoringSettings",
"apiVersion": "2020-11-01-preview",
"name": "[format('{0}/{1}', parameters('springName'), 'default')]",
"properties": {
"appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
"appInsightsSamplingRate": 88
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
]
}
]
}
Terraform
Для развертывания с помощью Terraform используйте приведенный ниже шаблон. Дополнительные сведения см. в статье azurerm_spring_cloud_service.
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_application_insights" "example" {
name = "tf-test-appinsights"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
application_type = "web"
}
resource "azurerm_spring_cloud_service" "example" {
name = "example-springcloud"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku_name = "S0"
config_server_git_setting {
uri = "https://github.com/Azure-Samples/piggymetrics"
label = "config"
search_paths = ["dir1", "dir2"]
}
trace {
connection_string = azurerm_application_insights.example.connection_string
sample_rate = 10.0
}
tags = {
Env = "staging"
}
}
Автоматизация в плане Enterprise ожидает поддержки. Документация добавляется сразу после ее доступности.
Обновление агента Java
Агент Java регулярно обновляется и обновляется с помощью JDK, что может повлиять на следующие сценарии.
Примечание.
Версия JDK обновляется и обновляется ежеквартально в год.
- Существующие приложения, использующие агент Java перед обновлением и обновлением, не затрагиваются.
- Приложения, созданные после обновления и обновления, используют новую версию агента Java.
- Существующие приложения, которые ранее не использовали агент Java, требуют перезапуска или повторного развертывания для использования новой версии агента Java.
Агент Java обновляется или обновляется при обновлении пакета сборки.
Горячая загрузка конфигурации агента Java
Azure Spring Apps имеет механизм горячей загрузки для настройки параметров конфигурации агента без перезапуска приложений.
Примечание.
Механизм горячей загрузки имеет задержку, выраженную в минутах.
Если агент Java уже включен, изменения экземпляра
SamplingRate
или значения Application Insights не требуют перезапуска приложения.При включении агента Java необходимо перезапустить приложения.
При отключении агента Java приложения перестают отправлять все данные мониторинга после задержки в минутах. Вы можете перезапустить приложения, чтобы удалить агент из среды выполнения Java.
Сопоставление концепций между Azure Spring Apps и Application Insights
Azure Spring Apps | Application Insights |
---|---|
App |
* Схема приложений/Роль * Динамические метрики/Роль * Сбои/Роли/Облачная роль * Производительность/Роли/Облачная роль |
App Instance |
* Схема приложений/Экземпляр роли * Динамические метрики/Имя службы * Сбои/Роли/Облачный экземпляр * Производительность/Роли/Облачный экземпляр |
Имя App Instance
из Azure Spring Apps изменяется или создается в следующих сценариях:
- при создании нового приложения;
- при развертывании JAR-файла или исходного кода в существующем приложении;
- при запуске развертывания по схеме "синий — зеленый";
- при перезапуске приложения;
- при остановке и повторном запуске приложения.
Сохраняемые в Application Insights данные содержат историю создания и развертывания экземпляров приложений Azure Spring Apps с момента включения агента Java. Например, на портале Application Insights вы можете видеть данные приложения, созданные за предыдущий день, но удаленные в течение определенного диапазона времени, например за последние 24 часа. Работу этого механизма можно продемонстрировать на следующем примере.
- Предположим, сегодня примерно в 08:00 вы создали приложение в Azure Spring Apps с поддержкой клиента Java, а затем примерно в 08:10 развернули в этом приложении JAR-файл. Выполнив тестирование, вы немного изменили код и в 08:30 развернули в том же приложении новый JAR-файл. Затем вы сделали перерыв, после чего примерно в 11:00 проверяете данные из Application Insights. Видишь:
- три экземпляра в схеме приложений за последние 24 часа, данные о сбоях и производительности, а также метрики;
- один экземпляр в схеме приложений за последний час, данные о сбоях и производительности, а также метрики;
- один экземпляр в динамических метриках.
- Предположим, сегодня примерно в 08:00 вы создали приложение в Azure Spring Apps с поддержкой клиента Java, а затем примерно в 08:10 развернули в этом приложении JAR-файл. Примерно в 8:30 вы применили развертывание по схеме "синий — зеленый" с другим JAR-файлом. Сейчас для этого приложения у вас есть два развертывания. После небольшого перерыва в 11:00 вы хотите проверить данные из Application Insights. Видишь:
- три экземпляра в схеме приложений за последние 24 часа, данные о сбоях и производительности, а также метрики;
- два экземпляра в схеме приложений за последний час, данные о сбоях и производительности, а также метрики;
- два экземпляра в динамических метриках.