Использование внутрипроцессного агента Java Application Insights в Azure Spring Apps

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

С помощью приложений Spring Boot Native Image используйте дистрибутив Azure Monitor OpenTelemetry или Application Аналитика в проекте приложения Java для машинного образа Spring Boot вместо агента Java приложения Аналитика Java.

Эта статья относится к: ✔️ стандартное потребление и выделенная (предварительная версия) ✔️ Basic/Standard ✔️ Enterprise

В этой статье объясняется, как отслеживать приложения с помощью агента Java Application Insights в Azure Spring Apps.

Возможности этой функции

  • Поиск данных трассировки с использованием фильтров.
  • Просмотр карты зависимостей для приложений Spring.
  • Проверка производительности запросов.
  • Мониторинг динамических метрик в режиме реального времени.
  • Проверка сбоев при запросах.
  • Проверка метрик приложения.
  • Создание журналов приложений.

Application Insights может предоставлять множество полезных сведений, в том числе:

  • Схема приложений
  • Производительность
  • Сбои
  • Метрики
  • Интерактивные метрики
  • Availability
  • Журналы

Использование возможности Application Insights

Если возможность Application Insights включена, вы можете выполнить следующее.

  • В области навигации выберите "Приложение Аналитика", чтобы просмотреть страницу обзора приложения Аналитика. На странице обзора показан обзор всех запущенных приложений.

  • Щелкните Схема приложений, чтобы просмотреть состояние вызовов между приложениями.

    Снимок экрана: портал Azure, на котором показана страница карты приложения Аналитика приложения.

  • Щелкните связь между customers-service и petclinic, чтобы просмотреть дополнительные сведения, например запрос SQL.

  • Выберите конечную точку, чтобы просмотреть список всех приложений, выполняющих запросы к конечной точке.

  • В области навигации выберите "Производительность", чтобы просмотреть данные о производительности всех операций приложений, зависимостей и ролей.

    Снимок экрана: портал Azure, на котором показана страница

  • В области навигации выберите "Сбои" , чтобы увидеть непредвиденные сбои или исключения из приложений.

    Снимок экрана: портал Azure, на котором показана страница

  • В области навигации выберите метрики и выберите пространство имен, чтобы просмотреть метрики Spring Boot и пользовательские метрики , если таковые есть.

    Снимок экрана: страница портал Azure приложения Аналитика метрик.

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

    Снимок экрана: страница портал Azure приложения Аналитика динамических метрик.

  • В области навигации выберите "Доступность", чтобы отслеживать доступность и скорость реагирования веб-приложений, создавая тесты доступности в приложении Аналитика.

    Снимок экрана: портал Azure, на котором показана страница доступности приложения Аналитика.

  • В области навигации выберите журналы для просмотра журналов всех приложений или журналов одного приложения при фильтрации cloud_RoleName.

    Снимок экрана: страница

Управление Application Insights с помощью портал Azure

Включите внутрипроцессный агент Java с помощью следующей процедуры.

  1. Перейти к службе | Страница обзора экземпляра службы и выберите "Приложение Аналитика" в разделе "Мониторинг".

  2. Щелкните Включить Application Insights, чтобы включить Application Insights в Azure Spring Apps.

  3. Выберите существующий экземпляр Application Insights или создайте новый.

  4. Если компонент Application Insights включен, можно настроить одну необязательную частоту выборки (по умолчанию 10,0 %).

    Снимок экрана: портал Azure, на котором показана страница

  5. Щелкните Сохранить для сохранения изменений.

Примечание.

Не используйте один и тот же экземпляр приложения Аналитика в разных экземплярах Azure Spring Apps или отображаются смешанные данные.

Для проверки или обновления текущих параметров в Application Insights можно использовать портал.

Включение Application Insights с помощью портала Azure

  1. Выберите Application Insights.

  2. Включите Application Insights, выбрав Изменить привязку или щелкнув гиперссылку Без привязки.

    Снимок экрана: портал Azure Azure, на котором показан экземпляр Azure Spring Apps со страницей

  3. Измените Application Insights или значение Частота выборки, а затем нажмите кнопку Сохранить.

Отключение Application Insights

  1. Выберите Application Insights.

  2. Щелкните Отменить привязку, чтобы отключить Application Insights.

    Снимок экрана: портал Azure, на котором показан экземпляр Azure Spring Apps со страницей

Изменение параметров Application Insights

Выберите имя в столбце Application Insights, чтобы открыть раздел Application Insights.

Снимок экрана: портал Azure, на котором показан экземпляр Azure Spring Apps со страницей

Изменение привязок пакета сборки Application Insights в службе сборки

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

  1. Нажмите Build Service (Служба сборки).
  2. Выберите построитель.
  3. Щелкните Изменить в столбце привязок.

Параметры Application Insights находятся в элементе ApplicationInsights, который указан в столбце Тип привязки.

  1. Щелкните гиперссылку Привязка или выберите пункт Изменить привязку в меню с многоточием, чтобы открыть и изменить привязки пакета сборки Application Insights.

    Снимок экрана: портал Azure, в котором показаны привязки редактирования для панели построителя по умолчанию.

  2. Измените параметры привязки и нажмите кнопку Сохранить.

    Снимок экрана: портал Azure, на котором показана область

Управление 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 Аналитика с типом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 значении приложения Аналитика не требуют перезапуска приложения.

  • При включении агента 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 часа, данные о сбоях и производительности, а также метрики;
    • два экземпляра в схеме приложений за последний час, данные о сбоях и производительности, а также метрики;
    • два экземпляра в динамических метриках.

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