Partager via


Migrer des SDK d'API classique Application Insights vers Azure Monitor OpenTelemetry

Ce guide fournit des instructions pas à pas pour migrer des applications à partir des kits SDK Application Insights (API classique) vers Azure Monitor OpenTelemetry.

Attendez-vous à une expérience similaire avec l’instrumentation OpenTelemetry d’Azure Monitor comme avec les kits sdk Application Insights. Pour plus d’informations et une comparaison de fonctionnalités par fonctionnalité, consultez l’état de publication des fonctionnalités.

Utilisez le Kit de développement logiciel (SDK) Application Insights .NET 3.x pour effectuer une mise à niveau du Kit de développement logiciel (SDK) .NET Application Insights 2.x vers une implémentation basée sur OpenTelemetry (OTel). Le Kit de développement logiciel (SDK) 3.x conserve la plupart des TelemetryClient et TelemetryConfiguration interfaces de programmation d'applications (API) et utilise l'exportateur OpenTelemetry d'Azure Monitor pour envoyer des données de télémétrie à Application Insights.

Si vous générez une nouvelle application ou que vous utilisez déjà la distribution OpenTelemetry Azure Monitor, utilisez plutôt la distribution OpenTelemetry Azure Monitor . N’utilisez pas le Kit de développement logiciel (SDK) .NET Application Insights 3.x et la distribution OpenTelemetry Azure Monitor dans la même application.

Vue d’ensemble du Kit de développement logiciel (SDK) .NET Application Insights 3.x

Application Insights .NET SDK 3.x fournit ces packages NuGet :

  • Microsoft.ApplicationInsights pour TelemetryClient et TelemetryConfiguration
  • Microsoft.ApplicationInsights.AspNetCore pour les applications Web ASP.NET (Active Server Pages .NET) Core
  • Microsoft.ApplicationInsights.WorkerService pour les applications de service de travail et de console
  • Microsoft.ApplicationInsights.Web pour les applications ASP.NET sur .NET Framework
  • Microsoft.ApplicationInsights.NLogTarget pour l’intégration de NLog (bêta)

Utilisez la documentation du référentiel pour obtenir des exemples de code et des détails d’intégration OpenTelemetry :

Mettre à niveau vers la version 3.x

Étape 1 : Supprimer les références aux packages incompatibles

Supprimez ces packages, car ils ne sont pas compatibles avec le Kit de développement logiciel (SDK) 3.x :

  • Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel
  • Microsoft.ApplicationInsights.DependencyCollector
  • Microsoft.ApplicationInsights.EventCounterCollector
  • Microsoft.ApplicationInsights.PerfCounterCollector
  • Microsoft.ApplicationInsights.WindowsServer
  • Microsoft.Extensions.Logging.ApplicationInsights
  • Microsoft.ApplicationInsights.Log4NetAppender
  • Microsoft.ApplicationInsights.TraceListener
  • Microsoft.ApplicationInsights.DiagnosticSourceListener
  • Microsoft.ApplicationInsights.EtwCollector
  • Microsoft.ApplicationInsights.EventSourceListener

Sdk 3.x ne publie pas les versions 3.x de ces packages. Utilisez plutôt les packages 3.x pris en charge dans la vue d’ensemble du Kit de développement logiciel (SDK) .NET Application Insights 3.x .

Étape 2 : Mettre à niveau les versions du package vers 3.x

Mettez à niveau les packages Application Insights restants pris en charge vers la dernière version 3.x.

Important

Ne mélangez pas les packages Application Insights 2.x et 3.x dans la même application. Effectuez la mise à niveau de toutes les références de modules Application Insights ensemble.

Étape 3 : Mettre à jour le code et la configuration afin de prendre en compte les changements cassants

Consultez la référence des modifications perturbantes et supprimez ou remplacez les API et paramètres qui ne sont plus supportés.

Les modifications les plus courantes sont les suivantes :

  • Supprimez les TrackPageView appels.
  • Mettez à jour les appels de Track* pour supprimer le paramètre de métriques personnalisées.
  • Remplacez la configuration de la clé d’instrumentation par une chaîne de connexion complète à l’aide de TelemetryConfiguration.ConnectionString.
  • Remplacez les personnalisations TelemetryModule, TelemetryInitializer et TelemetryProcessor par les processeurs OpenTelemetry, les bibliothèques d'instrumentation et les détecteurs de ressources. La ApplicationInsightsServiceOptions classe inclut EnableQuickPulseMetricStream, , EnablePerformanceCounterCollectionModuleEnableDependencyTrackingTelemetryModuleet EnableRequestTrackingTelemetryModule. Ces ApplicationInsightsServiceOptions paramètres configurent le comportement de l’exportateur et n’utilisent TelemetryModule pas d’implémentations.
  • Remplacez l’échantillonnage adaptatif (EnableAdaptiveSampling) par TracesPerSecond ou SamplingRatio.
  • Ciblez .NET Framework 4.6.2 ou version ultérieure pour les applications ASP.NET qui utilisent Microsoft.ApplicationInsights.Web.

Remplacer les points d’extensibilité supprimés

Application Insights .NET SDK 2.x fournit des types d’extensibilité spécifiques à Application Insights, tels que les modules de télémétrie, les initialiseurs et les processeurs. Application Insights .NET SDK 3.x utilise plutôt l’extensibilité OpenTelemetry.

  • Utilisez les options d’instrumentation et de configuration OpenTelemetry pour contrôler la collecte automatique.
  • Utilisez des processeurs OpenTelemetry pour enrichir ou filtrer les données de télémétrie.

Sdk 3.x conserve uniquement un sous-ensemble de TelemetryContext propriétés. Vous pouvez définir ces propriétés sur des éléments de télémétrie individuels :

Contexte Propriétés
User Id, AuthenticatedUserIdUserAgent
Operation Name
Location Ip
GlobalProperties (dictionnaire)

Configurer l’échantillonnage

Application Insights .NET SDK 3.x prend en charge deux modes d’échantillonnage pour les traces (demandes et dépendances) :

  • Définissez SamplingRatio (0,0 à 1,0) pour l’échantillonnage basé sur des pourcentages.
  • Défini TracesPerSecond pour l’échantillonnage limité à la fréquence (valeur par défaut : cinq traces par seconde).

Sdk 3.x applique les mêmes paramètres d’échantillonnage aux demandes et aux dépendances. Sdk 3.x ne prend pas en charge les paramètres d’échantillonnage distincts pour les demandes et les dépendances.

Lorsqu’une requête ou une dépendance fait l’objet d’un échantillonnage, le SDK 3.x applique par défaut la décision d’échantillonnage de la trace parente aux journaux d’activité associés. Pour désactiver ce comportement, définissez EnableTraceBasedLogsSampler sur false.

Vous pouvez définir SamplingRatio, TracesPerSecondet EnableTraceBasedLogsSampler dans TelemetryConfiguration, appsettings.jsonou applicationinsights.config.

Dépannage d’une mise à niveau

Procédez comme suit pour valider les données de télémétrie lors d’une mise à niveau vers sdk 3.x :

  • Collectez les journaux de diagnostic automatique Application Insights pour identifier les erreurs de configuration et les échecs d’exportation.
  • Ajoutez l’exportateur de console OpenTelemetry afin de vérifier que les traces, les mesures et les journaux d’activité s’affichent conformément aux attentes avant de vous appuyer sur l’ingestion Azure Monitor.
  • Vérifiez que les paramètres d’échantillonnage se comportent comme prévu en validant les décisions de trace parent-enfant.
  • Validez les attributs de ressource tels que le nom du service, le nom du rôle et l’environnement pour garantir une attribution correcte dans Application Insights.

Pour obtenir des conseils détaillés sur la résolution des problèmes et des exemples, utilisez les ressources suivantes :