Ressources Application Insights basées sur l’espace de travail

Les ressources basées sur l’espace de travail Azure MonitorApplication Insights intègrent Application Insights et Log Analytics.

Grâce aux ressources basées sur l’espace de travail, Application Insights envoie les données de télémétrie à un espace de travail Log Analytics commun, ce qui vous permet d’accéder à toutes les fonctionnalités de Log Analytics tout en conservant les journaux des applications, des infrastructures et des plateformes dans un emplacement consolidé unique. Cette intégration permet de disposer d’un contrôle d’accès en fonction du rôle Azure commun sur vos ressources et élimine le besoin de requêtes entre des applications ou des espaces de travail.

Notes

L’ingestion et la conservation des données pour les ressources Application Insights basées sur un espace de travail sont facturées dans l’espace de travail Log Analytics où se trouvent les données. Pour en savoir plus sur la facturation des ressources Application Insights basées sur un espace de travail, consultez Informations sur les tarifs des Journaux Azure Monitor.

Nouvelles fonctionnalités

Application Insights basé sur l'espace de travail s'intègre à Azure Monitor et Log Analytics pour améliorer les fonctionnalités :

Créer une ressource basée sur un espace de travail

Connectez-vous au Portail Azure et créez une ressource Application Insights.

Capture d’écran montrant une ressource Application Insights basée sur un espace de travail.

Si vous ne disposez pas d’un espace de travail Log Analytics, consultez la documentation relative à la création d’un espace de travail Log Analytics.

Les ressources basées sur un espace de travail sont actuellement disponibles dans toutes les régions commerciales et Azure Government. Le fait d’avoir Application Insights et Log Analytics dans deux régions différentes peut avoir un impact sur la latence et réduire la fiabilité générale de la solution de monitoring.

Après avoir créé votre ressource, vous verrez les informations de l’espace de travail correspondant dans le volet Vue d’ensemble.

Capture d’écran montrant le nom d’un espace de travail.

Sélectionnez texte du lien bleu pour accéder à l’espace de travail Log Analytics associé dans lequel vous pouvez tirer parti du nouvel environnement de requête de l’espace de travail unifié.

Notes

Nous proposons toujours une compatibilité descendante complète pour vos requêtes de ressources, classeurs et alertes basées sur un journal Application Insights classiques. Pour interroger ou afficher le nouveau schéma ou la nouvelle structure de table basée sur un espace de travail, vous devez d’abord accéder à votre espace de travail Log Analytics. Sélectionnez Journaux (Analytics) dans les volets d’Application Insights pour accéder à l’expérience de requête Application Insights classique.

Copier la chaîne de connexion

La chaîne de connexion identifie la ressource à laquelle vous souhaitez associer vos données de télémétrie. Vous pouvez également l’utiliser pour modifier les points de terminaison que votre ressource utilise comme destination pour votre télémétrie. Vous devez copier la chaîne de connexion et l’ajouter au code de votre application ou à une variable d’environnement.

Configuration de l’analyse

Après avoir créé une ressource Application Insights basée sur un espace de travail, vous pouvez configurer la supervision.

Supervision des applications basée sur du code

Pour la supervision des applications basée sur du code, vous installez le kit de développement logiciel (SDK) Application Insights approprié et pointez la chaîne de connexion vers la ressource que vous venez de créer.

Pour plus d’informations sur la configuration d’un Kit de développement logiciel (SDK) Application Insights pour la supervision basée sur du code, consultez la documentation suivante spécifique au langage ou à l’infrastructure :

Supervision sans code et création de ressources Visual Studio

Pour la supervision sans code de services tels qu’Azure Functions et Azure App Services, vous créez tout d’abord votre ressource Application Insights basée sur un espace de travail. Ensuite, vous pointez vers cette ressource lorsque vous configurez la supervision.

Ces services offrent la possibilité de créer une nouvelle ressource Application Insights dans leur propre processus de création de ressources. Toutefois, les ressources créées via ces options d’interface utilisateur sont actuellement limitées à l’expérience Application Insights classique.

La même restriction s’applique à l’expérience de création de ressources Application Insights dans Visual Studio pour ASP.NET et ASP.NET Core. Vous devez sélectionner une ressource basée sur un espace de travail existante dans l’interface utilisateur de Visual Studio où vous activez la supervision. La sélection de Créer une ressource dans Visual Studio vous limite à la création d’une ressource Application Insights classique.

Créer une ressource automatiquement

Azure CLI

Pour accéder à la préversion des commandes Azure CLI pour Application Insights, vous devez d’abord exécuter :

 az extension add -n application-insights

Si vous n’exécutez pas la commande az extension add, un message d’erreur indique az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.

Vous pouvez maintenant exécuter le code suivant pour créer votre ressource 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]

Exemple

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"

Pour obtenir la documentation Azure CLI complète pour cette commande, consultez la documentation Azure CLI.

Azure PowerShell

Créez une nouvelle ressource Application Insights basée sur un espace de travail.

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>]

Exemple

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

Pour obtenir la documentation PowerShell complète de cette cmdlet et apprendre à récupérer la chaîne de connexion, consultez la documentation Azure PowerShell.

Modèles Microsoft Azure Resource Manager

@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
  }
}

Fichier de paramètres

{
  "$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"
    }
  }
}

Modifier l’espace de travail associé

Après avoir créé une ressource Application Insights basée sur un espace de travail, vous pouvez modifier l'espace de travail Log Analytics associé.

Dans le volet des ressources Application Insights, sélectionnez Propriétés>Modifier l’espace de travail>Espaces de travail Log Analytics.

Exporter la télémétrie

La fonctionnalité héritée d’exportation continue n’est pas prise en charge pour les ressources basées sur un espace de travail. Au lieu de cela, sélectionnez Paramètres de diagnostic>Ajouter un paramètre de diagnostic dans votre ressource Application Insights. Vous pouvez sélectionner toutes les tables ou un sous-ensemble de tables à archiver dans un compte de stockage. Vous pouvez également diffuser en continu vers un Azure Event Hub.

Notes

L’exportation des paramètres de diagnostic peut augmenter les coûts. Pour plus d’informations, consultez Exporter les données de télémétrie à partir d’Application Insights. Pour plus d’informations sur la tarification de cette fonctionnalité, consultez la page de tarification d’Azure Monitor. Avant le début de la facturation, des notifications seront envoyées. Si vous continuez à utiliser l’exportation de la télémétrie après la période de préavis, vous serez facturé au tarif applicable.

Combien de ressources Application Insights déployer ?

Lorsque vous développez la prochaine version d’une application web, vous ne souhaitez pas mélanger les télémétries Application Insights de la nouvelle version et de la version déjà publiée.

Pour éviter toute confusion, envoyez la télémétrie des différentes phases de développement à des ressources Application Insights séparées, avec des chaînes de connexion distinctes.

Si votre système est une instance d’Azure Cloud Services, il existe une autre méthode pour définir des chaînes de connexion distinctes.

À propos des ressources et des chaînes de connexion

Lorsque vous configurez la surveillance Application Insights pour votre application web, vous créez une ressource Application Insights dans Azure. Vous ouvrez cette ressource dans le Portail Azure pour voir et analyser la télémétrie recueillie dans votre application. Une chaîne de connexion identifie la ressource. Lorsque vous installez le package Application Insights pour surveiller votre application, vous le configurez avec la chaîne de connexion afin qu’il sache où envoyer la télémétrie.

Chaque ressource Application Insights est accompagnée de métriques prêtes à l’emploi. Si des composants distincts signalent à la même ressource Application Insights, il risque d’être inutile d’alerter sur ces métriques.

Quand utiliser une seule ressource Application Insights

Utiliser une ressource Application Insights unique :

  • Rationalisation de la gestion DevOps/ITOps pour les applications déployées ensemble. Celles-ci sont généralement développées et gérées par la même équipe.
  • Centralisation des indicateurs de performance clés, tels que les temps de réponse et les taux d'échec, dans un tableau de bord par défaut. Segmentez par nom de rôle dans l'Explorateur de métriques si nécessaire.
  • Lorsqu'il n'est pas nécessaire de gérer différents contrôles d'accès en fonction du rôle intégré à Azure entre les composants d'application.
  • Lorsque des critères d'alerte identiques, des exportations continues et la gestion des quotas/facturation entre les composants suffisent.
  • Lorsqu'il est acceptable qu'une clé API accède aux données de tous les composants de manière égale, et que 10 clés API répondent aux besoins de tous les composants.
  • Lorsque les mêmes paramètres de détection intelligente et d'intégration d'élément de travail conviennent à tous les rôles.

Remarque

Si vous souhaitez fusionner plusieurs ressources Application Insights, vous pouvez faire pointer vos composants d’application existants vers une nouvelle ressource Application Insights fusionnée. La télémétrie stockée dans votre ancienne ressource n’est pas transférée vers la nouvelle ressource. Supprimez l’ancienne ressource uniquement lorsque vous avez suffisamment de données de télémétrie dans la nouvelle ressource pour la continuité de l’activité.

Autres considérations

Pour activer les expériences du portail, ajoutez un code personnalisé pour attribuer des valeurs significatives à l'attribut Cloud_RoleName. Sans ces valeurs, les composantes du portail ne fonctionnent pas.

Pour les applications Azure Service Fabric et les services cloud classiques, le Kit de développement logiciel (SDK) configure automatiquement les services en lecture dans un environnement de rôle intégré à Azure. Pour les autres types d'applications, vous devez généralement les définir explicitement.

Les métriques actives ne peuvent pas fractionner les données par nom de rôle.

Créer d’autres ressources Application Insights

Pour créer une ressource Applications Insights, consultez Créer une ressource Application Insights.

Avertissement

Vous risquez d’encourir des coûts de réseau supplémentaires si votre ressource Application Insights surveille une ressource Azure (c’est-à-dire un producteur de télémétrie) dans une région différente. Les coûts varieront en fonction de la région d’où provient la télémétrie et de sa destination. Reportez-vous à la tarification de la bande passante Azure pour plus de détails.

Obtenir la chaîne de connexion

La chaîne de connexion identifie la ressource que vous avez créée.

Vous avez besoin des chaînes de connexion de toutes les ressources auxquelles votre application envoie des données.

Filtrer sur le numéro de build

En publiant une nouvelle version de votre application, vous souhaitez séparer les données télémétriques des différentes compilations.

Vous pouvez définir la propriété Version de l’application pour filtrer les résultats de recherche et de Metrics Explorer.

Il existe plusieurs méthodes pour définir la propriété Version de l’application.

  • Définissez directement :

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

  • Wrappez cette ligne dans un initialiseur de télémétrie pour vous assurer que toutes les instances TelemetryClient sont définies de manière cohérente.

  • ASP.NET : Définissez la version dans BuildInfo.config. Le module web sélectionne la version dans le nœud BuildLabel. Incluez ce fichier dans votre projet et n’oubliez pas de définir la propriété Toujours copier dans l’Explorateur de solutions.

    <?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 : Générez BuildInfo.config automatiquement dans Microsoft Build Engine. Ajoutez quelques lignes à votre fichier .csproj :

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

    Cette étape génère un fichier appelé Votre_nom_de_projet.BuildInfo.config. Le processus de publication le renomme BuildInfo.config.

    L'étiquette de compilation contient un espace réservé (*AutoGen_...*) lorsque vous compilez avec Visual Studio. Toutefois, lorsqu’il est généré avec Microsoft Build Engine, il est renseigné avec le bon numéro de version.

    Pour permettre à Microsoft Build Engine de générer des numéros de version, définissez la version comme 1.0.* dans AssemblyReference.cs.

Suivi de la version

Pour suivre la version de l’application, assurez-vous que votre processus Microsoft Build Engine génère buildinfo.config. Dans votre fichier .csproj, ajoutez :

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

Quand le module web Application Insights a les informations de version, ajoute automatiquement la Version de l’application en tant que propriété à chaque élément de télémétrie. C’est pourquoi vous pouvez filtrer par version lorsque vous effectuez des recherches de diagnostic ou que vous explorez les métriques.

Microsoft Build Engine génère exclusivement le numéro de version de compilation, et non la compilation du développeur à partir de Visual Studio.

Annotations de version

Si vous utilisez Azure DevOps, vous pouvez obtenir un marqueur d’annotation ajouté à vos graphiques lorsque vous publiez une nouvelle version.

Forum aux questions

Cette section fournit des réponses aux questions fréquentes.

Comment déplacer une ressource Application Insights vers une nouvelle région ?

Le transfert de ressources Application Insights existant entre les régions n'est pas pris en charge. Par conséquent, vous ne pouvez pas migrer les données historiques vers une nouvelle région. La solution de contournement implique :

  • la création d'une nouvelle ressource Application Insights basée sur un espace de travail dans la nouvelle région souhaitée ;
  • une nouvelle création de toutes les personnalisations uniques de la ressource d'origine dans la nouvelle ressource ;
  • la mise à jour de votre application avec la chaîne de connexion de la nouvelle ressource régionale ;
  • des tests pour s'assurer que tout fonctionne comme prévu avec la nouvelle ressource Application Insights ;
  • la prise de décision sur le fait de conserver ou de supprimer la ressource Application Insights d'origine. La suppression d'une ressource classique signifie perdre toutes les données historiques. Si la ressource est basée sur l'espace de travail, les données restent dans Log Analytics, ce qui permet d'accéder aux données historiques jusqu'à l'expiration de la période de rétention.

Les personnalisations uniques qui doivent généralement être recréées ou mises à jour manuellement pour la ressource dans la nouvelle région incluent, mais sans s’y limiter :

  • Recréer des tableaux de bord et des classeurs personnalisés.
  • Recréer ou mettre à jour l’étendue de toutes les alertes personnalisées de journal/métrique.
  • Recréer des alertes de disponibilité.
  • Recréer les paramètres de contrôle d’accès en fonction du rôle Azure personnalisés qui sont requis pour que les utilisateurs accèdent à la nouvelle ressource.
  • Répliquer les paramètres impliquant l’échantillonnage d’ingestion, la conservation des données, la limite quotidienne et l’activation des métriques personnalisées. Ces paramètres sont contrôlés via le volet Utilisation et coûts estimés.
  • Toute intégration reposant sur des clés API telles que les annotations de version et les canaux de contrôle sécurisés des métriques en temps réel. Vous devez générer de nouvelles clés API et mettre à jour l’intégration associée.
  • L’exportation continue dans les ressources classiques doit être reconfigurée.
  • Les paramètres de diagnostic des ressources basées sur l’espace de travail doivent être reconfigurés.

Notes

Si la ressource que vous créez dans une nouvelle région remplace une ressource classique, nous vous recommandons d’explorer les avantages de la création d’une ressource basée sur l’espace de travail. Vous pouvez également migrer votre ressource existante basée sur un espace de travail.

Est-il possible d’utiliser providers(’Microsoft.Insights’, ’components’).apiVersions[0] dans mes déploiements Azure Resource Manager ?

Nous ne recommandons pas d’utiliser cette méthode pour renseigner la version de l’API. La version la plus récente peut représenter des publications de préversions susceptibles de contenir des changements changement cassant. Même avec des publications plus récentes autres que des préversions, les versions de l’API ne sont pas toujours rétrocompatibles avec des modèles existants. Dans certains cas, la version de l’API peut ne pas être disponible pour tous les abonnements.

Étapes suivantes