Поделиться через


Ресурсы рабочей области Application Insights

Ресурсы на основе рабочей области Azure Monitor application Insights интегрируют Application Insights и Log Analytics.

С помощью ресурсов на основе рабочей области Application Insights отправляет данные телеметрии в общую рабочую область Log Analytics, обеспечивая полный доступ ко всем функциям Log Analytics при сохранении журналов приложений, инфраструктуры и платформ в одном консолидированном расположении. Эта интеграция обеспечивает общий контроль доступа на основе ролей Azure в ресурсах и устраняет необходимость в запросах между приложениями и рабочими областями.

Примечание.

Прием и хранение данных ресурсов Application Insights на основе рабочей области оплачиваются по тарифам рабочей области Log Analytics, в которой находятся эти данные. Дополнительные сведения о выставлении счетов за ресурсы Application Insights на основе рабочих областей см. в сведениях о ценах на журналы Azure Monitor.

Новые возможности

Application Insights на основе рабочей области интегрируется с Azure Monitor и Log Analytics для улучшения возможностей:

  • Управляемый клиентом ключ шифрует неактивных данных только ключами, к которым вы обращаетесь.
  • Приватный канал Azure безопасно подключает службы Azure PaaS к виртуальной сети с помощью частных конечных точек.
  • Использование собственного хранилища (BYOS) для профилировщика и отладчика моментальных снимков позволяет управлять данными из Application Insights Profiler и Snapshot Debuger с помощью политик шифрования, времени существования и сетевого доступа.
  • Уровни обязательств предлагают до 30 % экономии по мере использования.
  • Потоковая передача Log Analytics обрабатывает данные быстрее.

Создание ресурса на основе рабочей области

Выполните вход на портал Azure и создайте новый ресурс Application Insights.

Снимок экрана: ресурс Application Insights на основе рабочей области.

Если у вас нет рабочей области Log Analytics, ознакомьтесь с документацией по созданию рабочей области Log Analytics.

Ресурсы на основе рабочих областей в настоящее время доступны во всех коммерческих регионах и в Azure для государственных организаций. Наличие Application Insights и Log Analytics в двух разных регионах может повлиять на задержку и снизить общую надежность решения мониторинга.

После создания ресурса соответствующие сведения о рабочей области будут отображаться на панели Обзор.

Снимок экрана: имя рабочей области.

Щелкните текст синей ссылки, чтобы перейти в соответствующую рабочую область Log Analytics, где можно воспользоваться преимуществами новой единой среды обработки запросов рабочей области.

Примечание.

Для классической среды Application Insights по-прежнему поддерживается обратная совместимость запросов к ресурсам, книг и оповещений на основе журналов. Для запроса или просмотра новой табличной структуры или схемы на основе рабочей области необходимо сначала перейти к рабочей области Log Analytics. Выберите Журналы (аналитика) на панелях Application Insights, чтобы перейти к классическому интерфейсу запросов Application Insights.

Копирование строки подключения

Строка подключения определяет ресурс, с которым необходимо связать данные телеметрии. Вы также можете использовать его для изменения конечных точек, используемых ресурсом в качестве назначения для телеметрии. Необходимо скопировать строку подключения и добавить ее в код приложения или переменную среды.

Настройка мониторинга

После создания ресурса Application Insights на основе рабочей области вы настроите мониторинг.

Мониторинг приложений на основе кода

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

Сведения о настройке пакета SDK для Application Insights для мониторинга на основе кода см. в следующей документации для конкретного языка или платформы:

Мониторинг без написания кода

Для мониторинга без кода таких служб, как Функции Azure и службы приложение Azure, сначала можно создать ресурс Application Insights на основе рабочей области. Затем укажите этот ресурс при настройке мониторинга. Кроме того, вы можете создать новый ресурс Application Insights в рамках включения Application Insights.

Автоматическое создание ресурса

Azure CLI

Чтобы получить доступ к командам Azure CLI для предварительной версии Application Insights, сначала необходимо выполнить следующее.

 az extension add -n application-insights

Если команда не выполняется, появится сообщение об ошибке az extension add , которое указывает az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.

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

az monitor app-insights component create --app
                                         --location
                                         --resource-group
                                         [--application-type]
                                         [--ingestion-access {Disabled, Enabled}]
                                         [--kind]
                                         [--only-show-errors]
                                         [--query-access {Disabled, Enabled}]
                                         [--tags]
                                         [--workspace]

Пример

az monitor app-insights component create --app demoApp --location eastus --kind web -g my_resource_group --workspace "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

Полную документацию по Azure CLI для этой команды можно найти здесь.

Azure PowerShell

Создайте ресурс Application Insights на основе рабочей области.

New-AzApplicationInsights -Name <String> -ResourceGroupName <String> -Location <String> -WorkspaceResourceId <String>
   [-SubscriptionId <String>]
   [-ApplicationType <ApplicationType>]
   [-DisableIPMasking]
   [-DisableLocalAuth]
   [-Etag <String>]
   [-FlowType <FlowType>]
   [-ForceCustomerStorageForProfiler]
   [-HockeyAppId <String>]
   [-ImmediatePurgeDataOn30Day]
   [-IngestionMode <IngestionMode>]
   [-Kind <String>]
   [-PublicNetworkAccessForIngestion <PublicNetworkAccessType>]
   [-PublicNetworkAccessForQuery <PublicNetworkAccessType>]
   [-RequestSource <RequestSource>]
   [-RetentionInDays <Int32>]
   [-SamplingPercentage <Double>]
   [-Tag <Hashtable>]
   [-DefaultProfile <PSObject>]
   [-Confirm]
   [-WhatIf]
   [<CommonParameters>]

Пример

New-AzApplicationInsights -Kind java -ResourceGroupName testgroup -Name test1027 -location eastus -WorkspaceResourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

Полную документацию по PowerShell для этого командлета и сведения о том, как получить строка подключения, см. в документации по Azure PowerShell.

Шаблоны диспетчера ресурсов Azure

@description('Name of Application Insights resource.')
param name string

@description('Type of app you are deploying. This field is for legacy reasons and will not impact the type of App Insights resource you deploy.')
param type string

@description('Which Azure Region to deploy the resource to. This must be a valid Azure regionId.')
param regionId string

@description('See documentation on tags: https://learn.microsoft.com/azure/azure-resource-manager/management/tag-resources.')
param tagsArray object

@description('Source of Azure Resource Manager deployment')
param requestSource string

@description('Log Analytics workspace ID to associate with your Application Insights resource.')
param workspaceResourceId string

resource component 'Microsoft.Insights/components@2020-02-02' = {
  name: name
  location: regionId
  tags: tagsArray
  kind: 'other'
  properties: {
    Application_Type: type
    Flow_Type: 'Bluefield'
    Request_Source: requestSource
    WorkspaceResourceId: workspaceResourceId
  }
}

Файл параметров

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "name": {
      "value": "my_workspace_based_resource"
    },
    "type": {
      "value": "web"
    },
    "regionId": {
      "value": "westus2"
    },
    "tagsArray": {
      "value": {}
    },
    "requestSource": {
      "value": "CustomDeployment"
    },
    "workspaceResourceId": {
      "value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testxxxx/providers/microsoft.operationalinsights/workspaces/testworkspace"
    }
  }
}

Изменение связанной рабочей области

После создания ресурса Application Insights на основе рабочей области можно изменить связанную рабочую область Log Analytics.

На панели ресурсов Application Insights выберите Свойства>Изменить рабочую область>Рабочие области Log Analytics.

Экспорт телеметрии

Устаревшие функции непрерывного экспорта не поддерживаются для ресурсов рабочей области. Вместо этого в ресурсе Application Insights выберите Параметры диагностики>Добавить параметр диагностики. Можно выбрать все таблицы или подмножество таблиц для архивации в учетной записи хранения. Также можно использовать потоковую передачу в концентратор событий Azure.

Примечание.

Экспорт параметров диагностики может привести к увеличению затрат. Дополнительные сведения см. в статье Экспорт данных телеметрии из Application Insights. Сведения о ценах на эту возможность см. на странице цен на Azure Monitor. До начала выставления счетов уведомления будут отправляться. Если вы продолжите использование экспорта телеметрии после периода уведомления, вам будет выставлен счет по применимой ставке.

Сколько ресурсов Application Insights следует развернуть?

При разработке следующей версии веб-приложения вы не хотите смешивать данные телеметрии Application Insights из новой версии и уже выпущенной версии.

Чтобы избежать путаницы, отправьте данные телеметрии с разных этапов разработки, чтобы разделить ресурсы Application Insights с отдельными строка подключения.

Если ваша система является экземпляром Azure Облачные службы, существует еще один метод настройки отдельных строка подключения.

Сведения о ресурсах и строка подключения

При настройке мониторинга Application Insights для веб-приложения вы создадите ресурс Application Insights в Azure. Вы открываете ресурс в портал Azure, чтобы просмотреть и проанализировать данные телеметрии, собранные из приложения. Строка подключения определяет ресурс. При установке пакета Application Insights для мониторинга приложения вы настроите его с помощью строка подключения, чтобы он знал, куда отправлять данные телеметрии.

Каждый ресурс Application Insights поставляется с метриками, доступными из поля. Если отдельные компоненты передаются в один ресурс Application Insights, это может не могло бы понять, как оповещать об этих метриках.

Когда лучше использовать один ресурс Application Insights

Используйте один ресурс Application Insights для:

  • Упрощение управления DevOps/ITOps для приложений, развернутых вместе, обычно разработанных и управляемых одной командой.
  • Централизованные ключевые показатели производительности, такие как время отклика и частоты сбоев, по умолчанию на панели мониторинга. При необходимости сегментируйте по имени роли в обозревателе метрик.
  • Если нет необходимости управлять доступом на основе ролей Azure между компонентами приложения.
  • Если одинаковые критерии оповещения метрик, непрерывный экспорт и управление выставлением счетов и квотами между компонентами достаточно.
  • Если ключ API может получить доступ к данным из всех компонентов одинаково, а 10 ключей API соответствуют потребностям всех компонентов.
  • Если одни и те же параметры интеллектуального обнаружения и интеграции рабочих элементов подходят для всех ролей.

Примечание.

Если вы хотите объединить несколько ресурсов Application Insights, можно указать существующие компоненты приложения на новый консолидированный ресурс Application Insights. Данные телеметрии, хранящиеся в старом ресурсе, не будут переданы новому ресурсу. Удалите старый ресурс, только если в новом ресурсе достаточно данных телеметрии для обеспечения непрерывности бизнес-процессов.

Другие вопросы

Чтобы активировать возможности портала, добавьте пользовательский код для назначения значимых значений атрибуту Cloud_RoleName . Без этих значений функции портала не работают.

Для приложений Azure Service Fabric и классических облачных служб пакет SDK автоматически настраивает службы, читая из среды роли Azure. Для других типов приложений обычно необходимо явно задать его.

Динамические метрики не могут разделить данные по имени роли.

Создание дополнительных ресурсов Application Insights

Сведения о создании ресурса Application Insights см. в статье "Создание ресурса Application Insights".

Предупреждение

Если ресурс Application Insights отслеживает ресурс Azure (т. е. производитель телеметрии) в другом регионе, может потребоваться дополнительная плата за сеть. Затраты будут отличаться в зависимости от региона, от которого поступает данные телеметрии и откуда она идет. Дополнительные сведения см. в ценах на пропускную способность Azure.

Получение строки подключения

Строка подключения определяет созданный ресурс.

Вам нужны строка подключения всех ресурсов, в которые приложение отправляет данные.

Фильтрация по номеру сборки

При публикации новой версии приложения вы хотите разделить данные телеметрии из разных сборок.

Можно задать свойство Версии приложения, чтобы можно было фильтровать результаты поиска и обозревателя метрик.

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

  • Напрямую:

    telemetryClient.Context.Component.Version = typeof(MyProject.MyClass).Assembly.GetName().Version;

  • Обтекайте такую строку в инициализаторе телеметрии, чтобы убедиться, что все TelemetryClient экземпляры настроены согласованно.

  • ASP.NET. Установка версии в BuildInfo.config. Веб-модуль выбирает версию из BuildLabel узла. Включите этот файл в проект и не забудьте задать свойство Copy Always в Обозреватель решений.

    <?xml version="1.0" encoding="utf-8"?>
    <DeploymentEvent xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06">
      <ProjectName>AppVersionExpt</ProjectName>
      <Build type="MSBuild">
        <MSBuild>
          <BuildLabel kind="label">1.0.0.2</BuildLabel>
        </MSBuild>
      </Build>
    </DeploymentEvent>
    
    
  • ASP.NET. Автоматическое создание BuildInfo.config в обработчике сборки Майкрософт. Добавьте в файл несколько строк .csproj :

    <PropertyGroup>
      <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>    <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
    </PropertyGroup>
    

    На этом шаге создается файл с именем yourProjectName.BuildInfo.config. Процесс публикации переименовывает его BuildInfo.configв .

    Метка сборки содержит заполнитель (*AutoGen_...*) при сборке с помощью Visual Studio. Но при построении с помощью подсистемы сборки Microsoft он заполняется правильным номером версии.

    Чтобы разрешить обработчику сборки Майкрософт создавать номера версий, задайте такую версию, как 1.0.* в AssemblyReference.cs.

Отслеживание версии и выпуска

Чтобы отслеживать версию приложения, убедитесь, что процесс обработчика сборки Майкрософт создает buildinfo.config. Добавьте в файл .csproj следующее:

<PropertyGroup>
  <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
  <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>

Когда веб-модуль Application Insights содержит сведения о сборке, он автоматически добавляет версию приложения в качестве свойства для каждого элемента телеметрии. По этой причине можно фильтровать по версии при выполнении диагностических поисков или при изучении метрик.

Модуль сборки Майкрософт создает исключительно номер версии сборки, а не сборку разработчика из Visual Studio.

Примечания к выпуску

Если используется Azure DevOps, можно настроить добавление маркера заметки к диаграммам при выпуске новой версии.

Часто задаваемые вопросы

В этом разделы приводятся ответы на часто задаваемые вопросы.

Как переместить ресурс Application Insights в новый регион?

Передача существующих ресурсов Application Insights между регионами не поддерживается, и вы не можете перенести исторические данные в новый регион. Обходное решение включает в себя следующее:

  • Создание ресурса Application Insights на основе рабочей области в нужном регионе.
  • Повторное создание уникальных настроек из исходного ресурса в новом.
  • Обновление приложения с помощью строка подключения нового ресурса региона.
  • Тестирование, чтобы убедиться, что все работает должным образом с новым ресурсом Application Insights.
  • Решите сохранить или удалить исходный ресурс Application Insights. Удаление классического ресурса означает потерю всех исторических данных. Если ресурс основан на рабочей области, данные остаются в Log Analytics, что позволяет получить доступ к историческим данным до истечения срока хранения.

Уникальные настройки, которые обычно необходимо вручную создать или обновить для ресурса в новом регионе, но не ограничиваются:

  • Повторно создайте пользовательские панели мониторинга и книги.
  • Повторно создайте или обновите область пользовательских оповещений журналов и метрик.
  • Повторное создание оповещений о доступности.
  • Повторно создайте все пользовательские параметры управления доступом на основе ролей Azure, необходимые для доступа пользователей к новому ресурсу.
  • Репликация параметров, включающих выборку приема, хранение данных, ежедневное ограничение и включение пользовательских метрик. Эти параметры контролируются с помощью панели Использование и предполагаемые затраты.
  • Любая интеграция, основанная на ключах API, таких как заметки о выпуске и динамические метрики безопасного канала управления. Необходимо создать новые ключи API и обновить связанную интеграцию.
  • Непрерывный экспорт в классических ресурсах необходимо настроить снова.
  • Параметры диагностики в ресурсах на основе рабочей области должны быть настроены снова.

Примечание.

Если ресурс, создаваемый в новом регионе, заменяет классический ресурс, рекомендуется изучить преимущества создания нового ресурса на основе рабочей области. Кроме того, перенесите существующий ресурс в рабочую область.

Можно ли использовать поставщиков ("Microsoft.Insights", "components".apiVersions[0] в развертываниях Azure Resource Manager?

Мы не рекомендуем использовать этот метод получения версии API. Последняя версия может представлять предварительные версии, которые могут содержать критические изменения. Даже при использовании более новых выпусков nonpreview версии API не всегда совместимы с существующими шаблонами. В некоторых случаях версия API может быть недоступна для всех подписок.

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